def yes(ar2): for o in objects: o.full_clean() o.save() watcher.send_update(ar2.request) #~ return self.saved_diffs_response(ar,obj) return self.goto_client_response( ar2, obj, _("%s has been saved.") % dd.obj2unicode(obj))
def run_from_ui(self, ar, **kw): obj = ar.selected_rows[0] if obj.printed_by_id is None: ar.error(_("Oops.")) return def ok(ar2): obj.clear_cache() ar2.success(_("Printedness has been undone."), refresh=True) if False: ar.confirm(ok, _("Going to undo the printedness of %s") % dd.obj2unicode(obj)) else: ok(ar)
def delete_element(ar,elem): assert elem is not None msg = ar.actor.disable_delete(elem,ar) if msg is not None: ar.error(None,msg,alert=True) return settings.SITE.ui.render_action_response(ar.response) #~ dblogger.log_deleted(ar.request,elem) #~ changes.log_delete(ar.request,elem) dd.pre_ui_delete.send(sender=elem,request=ar.request) try: elem.delete() except Exception,e: dblogger.exception(e) msg = _("Failed to delete %(record)s : %(error)s." ) % dict(record=dd.obj2unicode(elem),error=e) #~ msg = "Failed to delete %s." % element_name(elem) ar.error(None,msg) return settings.SITE.ui.render_action_response(ar.response)
def obj2unicode(cls, obj, ar): return dd.obj2unicode(obj)
def yes(ar): obj.full_clean() obj.save() watcher.send_update(ar.request) #~ return self.saved_diffs_response(ar,obj) return self.goto_client_response(ar,obj,_("%s has been saved.") % dd.obj2unicode(obj))
def form2obj_and_save(ar,data,elem,is_new,restful,file_upload=False): # **kw2save): """ Parses the data from HttpRequest to the model instance and saves it. """ #~ self = settings.SITE.ui request = ar.request rh = ar.ah #~ logger.info('20131017 form2obj_and_save %r', data) #~ print 'form2obj_and_save %r' % data #~ logger.info('20130418 before calling store.form2obj , elem is %s' % dd.obj2str(elem)) # store normal form data (POST or PUT) #~ original_state = dict(elem.__dict__) if not is_new: watcher = dd.ChangeWatcher(elem) try: rh.store.form2obj(ar,data,elem,is_new) elem.full_clean() except CATCHED_AJAX_EXCEPTIONS as e: return ajax_error(ar,e) #~ kw = dict(success=True) ar.response.update(success=True) #~ except exceptions.ValidationError, e: #~ kw = settings.SITE.ui.error(e) #~ return json_response(kw) #~ dirty = False #~ missing = object() #~ for k, v in original_state.iteritems(): #~ if v != elem.__dict__.get(k, missing): #~ dirty = True #~ if not dirty: if is_new or watcher.is_dirty(): elem.before_ui_save(ar) #~ if not is_new: #~ dblogger.log_changes(request,elem) kw2save = {} if is_new: kw2save.update(force_insert=True) else: kw2save.update(force_update=True) try: elem.save(**kw2save) except CATCHED_AJAX_EXCEPTIONS,e: return ajax_error(ar,e) #~ return views.json_response_kw(success=False, #~ msg=_("There was a problem while saving your data:\n%s") % e) if is_new: dd.pre_ui_create.send(elem,request=request) #~ changes.log_create(request,elem) ar.response.update( message=_("%s has been created.") % dd.obj2unicode(elem)) #~ record_id=elem.pk) else: watcher.send_update(request) #~ watcher.log_diff(request) ar.response.update(message=_("%s has been updated.") % dd.obj2unicode(elem))
#~ msg=_("There was a problem while saving your data:\n%s") % e) if is_new: dd.pre_ui_create.send(elem,request=request) #~ changes.log_create(request,elem) ar.response.update( message=_("%s has been created.") % dd.obj2unicode(elem)) #~ record_id=elem.pk) else: watcher.send_update(request) #~ watcher.log_diff(request) ar.response.update(message=_("%s has been updated.") % dd.obj2unicode(elem)) else: ar.response.update(message=_("%s : nothing to save.") % dd.obj2unicode(elem)) elem.after_ui_save(ar) if restful: # restful mode (used only for Ext.ensible) needs list_fields, not detail_fields ar.response.update(rows=[rh.store.row2dict(ar,elem,rh.store.list_fields)]) elif file_upload: ar.response.update(record_id=elem.pk) return json_response(ar.response,content_type='text/html') else: # 20120814 #~ logger.info("20120816 %r", ar.action) #~ if isinstance(ar.bound_action.action,actions.GridEdit): #~ if ar.bound_action.action.action_name in ('put','post'): # grid.on_afteredit #~ kw.update(rows=[rh.store.row2list(ar,elem)]) #~ else:
if is_new: dd.pre_ui_create.send(elem, request=request) #~ changes.log_create(request,elem) ar.response.update( message=_("%s has been created.") % dd.obj2unicode(elem)) #~ record_id=elem.pk) else: watcher.send_update(request) #~ watcher.log_diff(request) ar.response.update(message=_("%s has been updated.") % dd.obj2unicode(elem)) else: ar.response.update(message=_("%s : nothing to save.") % dd.obj2unicode(elem)) elem.after_ui_save(ar) if restful: # restful mode (used only for Ext.ensible) needs list_fields, not # detail_fields ar.response.update( rows=[rh.store.row2dict(ar, elem, rh.store.list_fields)]) elif file_upload: ar.response.update(record_id=elem.pk) return json_response(ar.response, content_type='text/html') else: # 20120814 #~ logger.info("20120816 %r", ar.action) #~ if isinstance(ar.bound_action.action,actions.GridEdit): # ~ if ar.bound_action.action.action_name in ('put','post'): # grid.on_afteredit