| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- from django.db import models
- from datetime import datetime
- from babel.dates import format_timedelta
- from django.contrib.auth.models import User
- # Create your models here.
- class Counter(models.Model):
- name = models.CharField('nom', max_length=60)
- email = models.EmailField('email', max_length=264,
- default='null@localhost')
- trigramme = models.CharField('trigramme', max_length=3)
- user = models.ForeignKey(User, blank=True, null=True,
- verbose_name='utilisateur associé')
- email_notifications = models.BooleanField(
- 'notifications par email', default=False)
- sort_by_score = models.BooleanField(
- 'trier par SeumScore™', default=True)
- def __str__(self):
- return '%s (%s)' % (self.trigramme, self.name)
- class Meta:
- verbose_name = 'compteur'
- class Reset(models.Model):
- timestamp = models.DateTimeField('date et heure', auto_now_add=True)
- reason = models.TextField('raison')
- counter = models.ForeignKey('Counter', related_name='counter',
- verbose_name='victime')
- who = models.ForeignKey('Counter', related_name='who',
- verbose_name='fouteur de seum',
- blank=True, null=True, default=None)
- def __str__(self):
- if (self.who is None or
- self.who.id == self.counter.id):
- return '%s : %s (%s)' % (self.counter,
- format_timedelta(
- datetime.now() -
- self.timestamp.replace(tzinfo=None),
- locale='fr'), self.reason)
- else:
- return '%s à %s : %s (%s)' % (self.who, self.counter,
- format_timedelta(
- datetime.now() -
- self.timestamp.replace(
- tzinfo=None),
- locale='fr'), self.reason)
- class Meta:
- verbose_name = 'remise à zéro'
- verbose_name_plural = 'remises à zéro'
- class Like(models.Model):
- liker = models.ForeignKey('Counter', verbose_name='likeur')
- reset = models.ForeignKey('Reset', verbose_name='seum')
- timestamp = models.DateTimeField('date et heure', auto_now_add=True)
- class Meta:
- verbose_name = 'like'
- verbose_name_plural = 'likes'
- unique_together = ('liker', 'reset')
- def __str__(self):
- return '%s aime %s' % (self.liker, self.reset)
- class Keyword(models.Model):
- text = models.CharField('texte', max_length=128, unique=True)
- class Meta:
- verbose_name = 'mot-clé'
- verbose_name_plural = 'mots-clés'
- def __str__(self):
- return '#%s' % (self.text)
- class Hashtag(models.Model):
- keyword = models.ForeignKey('Keyword', verbose_name='hashtag')
- reset = models.ForeignKey('Reset', verbose_name='remise à zéro')
- class Meta:
- verbose_name = 'hashtag'
- verbose_name_plural = 'hashtags'
- def __str__(self):
- return '%s pour %s' % (self.keyword, self.reset)
|