Source code for shared.models

# encoding: utf-8

from hashlib import sha1
import time

from django.conf import settings
from django.contrib.sites.models import Site
from django.core.urlresolvers import reverse
from django.db import models
from fiut.helpers import slugify

from .helpers import create_url


[docs]class SHA1TokenMixin(models.Model): token = models.CharField(verbose_name=u'token', max_length=40, blank=True)
[docs] class Meta: abstract = True
[docs] def save(self, *args, **kwargs): # create hash based on time if not self.token: self.token = sha1(str(time.time())).hexdigest() # run normal save return super(SHA1TokenMixin, self).save(*args, **kwargs)
[docs]class CreatedAtMixin(models.Model): created_at = models.DateTimeField(auto_now_add=True)
[docs] class Meta: abstract = True
[docs]class NameMixin(models.Model): name = models.CharField(max_length=64)
[docs] class Meta: abstract = True
def __unicode__(self): return self.name
[docs]class RelatedDateMixin(models.Model): related_date = models.DateField()
[docs] class Meta: abstract = True
[docs]class SlugMixin(models.Model): slug = models.SlugField(null=True, blank=True, unique=True)
[docs] class Meta: abstract = True
[docs] def save(self, *args, **kwargs): # create slug if not self.slug: self.slug = slugify(self.name) # run normal save return super(SlugMixin, self).save(*args, **kwargs)