Initial changes to support the new Django 1.6 project structure
This commit is contained in:
58
mayan/apps/common/models.py
Normal file
58
mayan/apps/common/models.py
Normal file
@@ -0,0 +1,58 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import ugettext
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
SINGLETON_LOCK_ID = 1
|
||||
|
||||
|
||||
class SingletonManager(models.Manager):
|
||||
def get(self, **kwargs):
|
||||
instance, created = self.model.objects.get_or_create(lock_id=SINGLETON_LOCK_ID, **kwargs)
|
||||
return instance
|
||||
|
||||
|
||||
class Singleton(models.Model):
|
||||
lock_id = models.CharField(max_length=1, default=SINGLETON_LOCK_ID, editable=False, verbose_name=_(u'lock field'), unique=True)
|
||||
|
||||
objects = SingletonManager()
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.id = 1
|
||||
super(Singleton, self).save(*args, **kwargs)
|
||||
|
||||
def delete(self, force=False, *args, **kwargs):
|
||||
if force:
|
||||
return super(Singleton, self).delete(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
|
||||
class AnonymousUserSingletonManager(SingletonManager):
|
||||
def passthru_check(self, user):
|
||||
if isinstance(user, AnonymousUser):
|
||||
return self.model.objects.get()
|
||||
else:
|
||||
return user
|
||||
|
||||
|
||||
class AnonymousUserSingleton(Singleton):
|
||||
objects = AnonymousUserSingletonManager()
|
||||
|
||||
def __unicode__(self):
|
||||
return ugettext('Anonymous user')
|
||||
|
||||
class Meta:
|
||||
verbose_name = _(u'anonymous user')
|
||||
verbose_name_plural = _(u'anonymous user')
|
||||
|
||||
|
||||
class AutoAdminSingleton(Singleton):
|
||||
account = models.ForeignKey(User, null=True, blank=True, related_name='auto_admin_account', verbose_name=_(u'account'))
|
||||
password = models.CharField(null=True, blank=True, verbose_name=_(u'password'), max_length=128)
|
||||
password_hash = models.CharField(null=True, blank=True, verbose_name=_(u'password hash'), max_length=128)
|
||||
|
||||
class Meta:
|
||||
verbose_name = verbose_name_plural = _(u'auto admin properties')
|
||||
Reference in New Issue
Block a user