393 |
393 |
394 @jsonize |
394 @jsonize |
395 def js_edit_field(self, action, names, values, rtype, eid): |
395 def js_edit_field(self, action, names, values, rtype, eid): |
396 success, args = self.validate_form(action, names, values) |
396 success, args = self.validate_form(action, names, values) |
397 if success: |
397 if success: |
|
398 # Any X,N where we don't seem to use N is an optimisation |
|
399 # printable_value won't need to query N again |
398 rset = self.req.execute('Any X,N WHERE X eid %%(x)s, X %s N' % rtype, |
400 rset = self.req.execute('Any X,N WHERE X eid %%(x)s, X %s N' % rtype, |
399 {'x': eid}, 'x') |
401 {'x': eid}, 'x') |
400 entity = rset.get_entity(0, 0) |
402 entity = rset.get_entity(0, 0) |
401 return (success, args, entity.printable_value(rtype)) |
403 return (success, args, entity.printable_value(rtype)) |
402 else: |
404 else: |
403 return (success, args, None) |
405 return (success, args, None) |
404 |
406 |
405 # def js_rql(self, rql): |
407 @jsonize |
406 # rset = self._exec(rql) |
408 def js_edit_relation(self, action, names, values, |
407 # return rset and rset.rows or [] |
409 rtype, eid, role='subject', vid='list'): |
|
410 # XXX validate_form |
|
411 success, args = self.validate_form(action, names, values) |
|
412 if success: |
|
413 entity = self.req.eid_rset(eid).get_entity(0, 0) |
|
414 rset = entity.related('person_in_charge', role) |
|
415 return (success, args, self.view(vid, rset)) |
|
416 else: |
|
417 return (success, args, None) |
408 |
418 |
409 @jsonize |
419 @jsonize |
410 def js_i18n(self, msgids): |
420 def js_i18n(self, msgids): |
411 """returns the translation of `msgid`""" |
421 """returns the translation of `msgid`""" |
412 return [self.req._(msgid) for msgid in msgids] |
422 return [self.req._(msgid) for msgid in msgids] |