12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- from django.contrib.auth.models import User, Permission
- from django.db import models
- from django.utils.translation import ugettext_lazy as _
- from .fields import AutoCreatedField, AutoLastModifiedField
- from django.contrib.contenttypes.models import ContentType
- class OperationalTable(models.Model):
- created = models.DateTimeField(auto_now_add=True)
- created_by = models.ForeignKey(User, related_name="+")
- last_updated = models.DateTimeField(auto_now_add=True, auto_now=True)
- last_updated_by = models.ForeignKey(User, related_name="+")
- is_active = models.BooleanField(default=True)
- class Meta:
- abstract = True
- class TimeStampedModel(models.Model):
- """
- An abstract base class model that provides self-updating
- ``created`` and ``modified`` fields.
- """
- created = AutoCreatedField(_("created"))
- modified = AutoLastModifiedField(_("modified"))
- class Meta:
- abstract = True
- class GlobalPermissionManager(models.Manager):
- def get_query_set(self):
- return (
- super(GlobalPermissionManager, self)
- .get_query_set()
- .filter(content_type__name="global_permission")
- )
- class GlobalPermission(Permission):
- """A global permission, not attached to a model"""
- objects = GlobalPermissionManager()
- class Meta:
- proxy = True
- def save(self, *args, **kwargs):
- ct, created = ContentType.objects.get_or_create(
- name="global_permission", app_label=self._meta.app_label
- )
- self.content_type = ct
- super(GlobalPermission, self).save(*args, **kwargs)
|