Guest User

Untitled

a guest
Apr 7th, 2019
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import User
  3. from django.utils.text import slugify
  4. from time import time
  5. from django.shortcuts import reverse
  6. # Create your models here.
  7.  
  8.  
  9. def gen_slug(s):
  10. new_slug = slugify(s, allow_unicode=True)
  11. return new_slug + '-' + str(int(time()))
  12.  
  13.  
  14. class Project(models.Model):
  15. name = models.CharField(max_length=20)
  16. colour = models.CharField(max_length=7)
  17. slug = models.SlugField(max_length=30, unique=True, blank=True)
  18. user = models.ForeignKey(User, on_delete=models.CASCADE)
  19.  
  20. class Meta:
  21. unique_together = ('name', 'colour', 'user')
  22.  
  23. def save(self, *args, **kwargs):
  24. self.slug = gen_slug(self.name)
  25. super().save(*args, **kwargs)
  26.  
  27. def get_absolute_url(self):
  28. return reverse('project_detail_url', kwargs={'slug': self.slug})
  29.  
  30. def get_delete_url(self):
  31. return reverse('project_delete_url', kwargs={'slug': self.slug})
  32.  
  33. def __str__(self):
  34. return self.name
  35.  
  36.  
  37. class Task(models.Model):
  38. LOW = 3
  39. MID = 2
  40. HIGH = 1
  41. CHOICES_OF_PRIORITY = (
  42. (LOW, 'Low'),
  43. (MID, 'Mid'),
  44. (HIGH, 'High')
  45. )
  46. name = models.CharField(max_length=30)
  47. priority = models.PositiveSmallIntegerField(max_length=1, choices=CHOICES_OF_PRIORITY, default=LOW)
  48. date_until = models.DateTimeField()
  49. status = models.CharField(max_length=4, blank=True)
  50. project = models.ForeignKey(Project, on_delete=models.CASCADE)
  51.  
  52. class Meta:
  53. ordering = ['priority']
  54.  
  55. def get_delete_url(self):
  56. return reverse('task_delete_url', kwargs={'id': self.id})
  57.  
  58. def get_done_url(self):
  59. return reverse('task_done_url', kwargs={'id': self.id})
  60.  
  61. def __str__(self):
  62. return self.name
Add Comment
Please, Sign In to add comment