web/views/basecontrollers.py
branchstable
changeset 2345 16e3d0e47ee6
parent 2330 8c70ca715fe9
child 2371 76bf522c27be
equal deleted inserted replaced
2344:22b5ea0679ed 2345:16e3d0e47ee6
   386     def validate_form(self, action, names, values):
   386     def validate_form(self, action, names, values):
   387         self.req.form = self._rebuild_posted_form(names, values, action)
   387         self.req.form = self._rebuild_posted_form(names, values, action)
   388         return _validate_form(self.req, self.vreg)
   388         return _validate_form(self.req, self.vreg)
   389 
   389 
   390     @jsonize
   390     @jsonize
   391     def js_edit_field(self, action, names, values, rtype, eid, default, lzone):
   391     def js_edit_field(self, action, names, values, rtype, eid, default):
   392         success, args = self.validate_form(action, names, values)
   392         success, args = self.validate_form(action, names, values)
   393         if success:
   393         if success:
   394             # Any X,N where we don't seem to use N is an optimisation
   394             # Any X,N where we don't seem to use N is an optimisation
   395             # printable_value won't need to query N again
   395             # printable_value won't need to query N again
   396             rset = self.req.execute('Any X,N WHERE X eid %%(x)s, X %s N' % rtype,
   396             rset = self.req.execute('Any X,N WHERE X eid %%(x)s, X %s N' % rtype,
   397                                     {'x': eid}, 'x')
   397                                     {'x': eid}, 'x')
   398             entity = rset.get_entity(0, 0)
   398             entity = rset.get_entity(0, 0)
   399             value = entity.printable_value(rtype) or default
   399             value = entity.printable_value(rtype) or default
   400             return (success, args, lzone + value)
   400             return (success, args, value)
   401         else:
   401         else:
   402             return (success, args, None)
   402             return (success, args, None)
   403 
   403 
   404     @jsonize
   404     @jsonize
   405     def js_edit_relation(self, action, names, values, rtype,
   405     def js_edit_relation(self, action, names, values, rtype,
   406                          role, eid, vid, default, escape, lzone):
   406                          role, eid, vid, default, lzone):
   407         success, args = self.validate_form(action, names, values)
   407         success, args = self.validate_form(action, names, values)
   408         if success:
   408         if success:
   409             entity = self.req.eid_rset(eid).get_entity(0, 0)
   409             entity = self.req.eid_rset(eid).get_entity(0, 0)
   410             rset = entity.related(rtype, role)
   410             rset = entity.related(rtype, role)
   411             if rset:
   411             if rset:
   412                 output = self.view(vid, rset)
   412                 output = self.view(vid, rset)
   413                 if escape == 'True':
       
   414                     output = xml_escape(output)
       
   415             else:
   413             else:
   416                 output = default
   414                 output = default
   417             return (success, args, lzone + output)
   415             return (success, args, lzone + output)
   418         else:
   416         else:
   419             return (success, args, None)
   417             return (success, args, None)