Nav apraksta

models.py 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from django.db import models
  2. from datetime import datetime
  3. from babel.dates import format_timedelta
  4. from django.contrib.auth.models import User
  5. # Create your models here.
  6. class Counter(models.Model):
  7. name = models.CharField('nom', max_length=60)
  8. email = models.EmailField('email', max_length=264,
  9. default='null@localhost')
  10. trigramme = models.CharField('trigramme', max_length=3)
  11. user = models.ForeignKey(User, blank=True, null=True,
  12. verbose_name='utilisateur associé')
  13. email_notifications = models.BooleanField(
  14. 'notifications par email', default=False)
  15. def __str__(self):
  16. return '%s (%s)' % (self.trigramme, self.name)
  17. class Meta:
  18. verbose_name = 'compteur'
  19. class Reset(models.Model):
  20. timestamp = models.DateTimeField('date et heure', auto_now_add=True)
  21. reason = models.TextField('raison')
  22. counter = models.ForeignKey('Counter', related_name='counter',
  23. verbose_name='victime')
  24. who = models.ForeignKey('Counter', related_name='who',
  25. verbose_name='fouteur de seum',
  26. blank=True, null=True, default=None)
  27. def __str__(self):
  28. if (self.who is None or
  29. self.who.id == self.counter.id):
  30. return '%s : %s (%s)' % (self.counter,
  31. format_timedelta(
  32. datetime.now() -
  33. self.timestamp.replace(tzinfo=None),
  34. locale='fr'), self.reason)
  35. else:
  36. return '%s à %s : %s (%s)' % (self.who, self.counter,
  37. format_timedelta(
  38. datetime.now() -
  39. self.timestamp.replace(
  40. tzinfo=None),
  41. locale='fr'), self.reason)
  42. class Meta:
  43. verbose_name = 'remise à zéro'
  44. verbose_name_plural = 'remises à zéro'
  45. class Like(models.Model):
  46. liker = models.ForeignKey('Counter', verbose_name='likeur')
  47. reset = models.ForeignKey('Reset', verbose_name='seum')
  48. timestamp = models.DateTimeField('date et heure', auto_now_add=True)
  49. class Meta:
  50. verbose_name = 'like'
  51. verbose_name_plural = 'likes'