web/views/editcontroller.py
changeset 8695 358d8bed9626
parent 8556 bbe0d6985e59
child 8697 574bb05e40a4
equal deleted inserted replaced
8694:d901c36bcfce 8695:358d8bed9626
   130         try:
   130         try:
   131             for eid in req.edited_eids():
   131             for eid in req.edited_eids():
   132                 # __type and eid
   132                 # __type and eid
   133                 formparams = req.extract_entity_params(eid, minparams=2)
   133                 formparams = req.extract_entity_params(eid, minparams=2)
   134                 eid = self.edit_entity(formparams)
   134                 eid = self.edit_entity(formparams)
   135         except (RequestError, NothingToEdit), ex:
   135         except (RequestError, NothingToEdit) as ex:
   136             if '__linkto' in req.form and 'eid' in req.form:
   136             if '__linkto' in req.form and 'eid' in req.form:
   137                 self.execute_linkto()
   137                 self.execute_linkto()
   138             elif not ('__delete' in req.form or '__insert' in req.form):
   138             elif not ('__delete' in req.form or '__insert' in req.form):
   139                 raise ValidationError(None, {None: unicode(ex)})
   139                 raise ValidationError(None, {None: unicode(ex)})
   140         # handle relations in newly created entities
   140         # handle relations in newly created entities
   157     def _insert_entity(self, etype, eid, rqlquery):
   157     def _insert_entity(self, etype, eid, rqlquery):
   158         rql = rqlquery.insert_query(etype)
   158         rql = rqlquery.insert_query(etype)
   159         try:
   159         try:
   160             entity = self._cw.execute(rql, rqlquery.kwargs).get_entity(0, 0)
   160             entity = self._cw.execute(rql, rqlquery.kwargs).get_entity(0, 0)
   161             neweid = entity.eid
   161             neweid = entity.eid
   162         except ValidationError, ex:
   162         except ValidationError as ex:
   163             self._to_create[eid] = ex.entity
   163             self._to_create[eid] = ex.entity
   164             if self._cw.ajax_request: # XXX (syt) why?
   164             if self._cw.ajax_request: # XXX (syt) why?
   165                 ex.entity = eid
   165                 ex.entity = eid
   166             raise
   166             raise
   167         self._to_create[eid] = neweid
   167         self._to_create[eid] = neweid
   247                     elif form.edited_entity.has_eid():
   247                     elif form.edited_entity.has_eid():
   248                         self.handle_relation(form, field, value, origvalues)
   248                         self.handle_relation(form, field, value, origvalues)
   249                     else:
   249                     else:
   250                         self._pending_fields.add( (form, field) )
   250                         self._pending_fields.add( (form, field) )
   251 
   251 
   252         except ProcessFormError, exc:
   252         except ProcessFormError as exc:
   253             self.errors.append((field, exc))
   253             self.errors.append((field, exc))
   254 
   254 
   255     def handle_inlined_relation(self, form, field, values, origvalues, rqlquery):
   255     def handle_inlined_relation(self, form, field, values, origvalues, rqlquery):
   256         """handle edition for the (rschema, x) relation of the given entity
   256         """handle edition for the (rschema, x) relation of the given entity
   257         """
   257         """