def save(self, *args, **kwargs): now = timezone.now() # set Point [ self.set_lat_lng(name, getattr(self, name)) for name in self.get_all_field_names() if isinstance(self._meta.get_field(name), geo.PointField) ] # create first time record if self.created_at is None: self.site = Site.objects.get_current() self.created_at = now self.created_at_timestamp = to_timestamp(self.created_at) if self.created_by: self.owned_by = self.created_by self.owned_at = self.created_at self.owned_at_timestamp = self.created_at_timestamp # always update self.updated_at = now self.updated_at_timestamp = to_timestamp(self.updated_at) # save the first time record instance = super(_BaseAbstract, self).save(*args, **kwargs) # generate id62 if self.id and not self.id62: self.id62 = base62_encode(self.id) kwargs['force_insert'] = False instance = super(_BaseAbstract, self).save(*args, **kwargs) return instance
def delete(self, user=None, *args, **kwargs): if user: # mark when the record deleted self.deleted_at = timezone.now() self.deleted_at_timestamp = to_timestamp(self.deleted_at) self.deleted_by = user # save it if there's a deleter return super(_BaseAbstract, self).save(*args, **kwargs)
def unpublish(self, user=None, *args, **kwargs): if user: # mark when the record reovered self.published_at = None self.published_at_timestamp = None self.published_by = None self.unpublished_at = timezone.now() self.unpublished_at_timestamp = to_timestamp(self.unpublished_at) self.unpublished_by = user # save it return super(_BaseAbstract, self).save(*args, **kwargs)
def approve(self, user=None, *args, **kwargs): if user: # mark when the record deleted self.unapproved_at = None self.unapproved_at_timestamp = None self.unapproved_by = None self.approved_at = timezone.now() self.approved_at_timestamp = to_timestamp(self.approved_at) self.approved_by = user # save it return super(_BaseAbstract, self).save(*args, **kwargs)
def save(self, *args, **kwargs): self.created_at = timezone.now() self.created_at_timestamp = to_timestamp(self.created_at) return super(Tracker, self).save(*args, **kwargs)
def read(self, *args, **kwargs): self.read_at = timezone.now() self.read_at_timestamp = to_timestamp(self.read_at) return self.save(*args, **kwargs)
def save(self, *args, **kwargs): self.logged_at = timezone.now() self.logged_at_timestamp = to_timestamp(self.logged_at) return super(Log, self).save(*args, **kwargs)