+ def can_update(self, user):
+ if user.is_readonly:
+ return False
+ if user.is_admin:
+ return True
+ return False
+
+ def delete(self, *args, **kwds):
+ # so we have something to give the observer
+ pk = self.pk
+ model_dict = model_to_dict(self)
+ for (k,v) in model_dict.items():
+ # things like datetime are not JSON serializable
+ model_dict[k] = str(v)
+
+ super(PlCoreBase, self).delete(*args, **kwds)
+
+ # This is a no-op if observer_disabled is set
+ notify_observer(model=self, delete=True, pk=pk, model_dict=model_dict)
+