def enable_publish(self, request, queryset): result = None failed_objects = [] for publish in queryset: #modify the table data if publish.status != EnabledStatus.instance().name: #status is changed publish.status = EnabledStatus.instance().name publish.pending_actions = PublishAction.publish_all_action try: publish.save(update_fields=['status', 'pending_actions']) except: error = sys.exc_info() failed_objects.append( ("{0}:{1}".format(publish.workspace.name, publish.name), traceback.format_exception_only(error[0], error[1]))) #update table failed, continue to process the next publish continue if failed_objects: messages.warning( request, mark_safe( "Enable failed for some selected publishs:<ul>{0}</ul>". format("".join([ "<li>{0} : {1}</li>".format(o[0], o[1]) for o in failed_objects ])))) else: messages.success(request, "Enable successfully for all selected publishs")
def enable_publish(self,request,queryset): result = None failed_objects = [] for publish in queryset: #modify the table data if publish.status != EnabledStatus.instance().name: #status is changed publish.status = EnabledStatus.instance().name publish.pending_actions = PublishAction.publish_all_action try: publish.save(update_fields=['status','pending_actions']) except: error = sys.exc_info() failed_objects.append(("{0}:{1}".format(publish.workspace.name,publish.name),traceback.format_exception_only(error[0],error[1]))) #update table failed, continue to process the next publish continue if failed_objects: messages.warning(request, mark_safe("Enable failed for some selected publishs:<ul>{0}</ul>".format("".join(["<li>{0} : {1}</li>".format(o[0],o[1]) for o in failed_objects])))) else: messages.success(request, "Enable successfully for all selected publishs")
def edit(self,instance): existing_instance = None from tablemanager.models import Publish if instance.pk: existing_instance = Publish.objects.get(pk = instance.pk) self._action = 0 if existing_instance: self._action = existing_instance.pending_actions or 0 for f in instance._meta.fields: rel1 = getattr(instance,f.name) rel2 = getattr(existing_instance,f.name) if isinstance(f,models.OneToOneField): if (rel1 == None or rel1.is_empty): if (rel2 == None or rel2.is_empty): pass else: self.column_changed(f.name) elif (rel2 == None or rel2.is_empty): self.column_changed(f.name) else: index = 0 for t in rel1.normal_tables: if t == rel2.normal_tables[index]: pass else: self.column_changed(f.name) break; index += 1 elif f.name == "status": if rel1 != EnabledStatus.instance().name: self._action = 0 break elif rel1 != rel2: self._action = self.publish_all_action break else: if rel1 != rel2: self.column_changed(f.name) else: self._action = self.publish_all_action return self