Edited models.py

parent ded6f864
from django.db import models from django.db import models
from django.utils import timezone from django.utils import timezone
from dashboard.models import WidgetUser from dashboard.models import WidgetUser
from django.urls import reverse
Like = 'Like'
Love = 'Love'
Angry = 'Angry'
REACTIONS = ((Like, 'Like'),
(Love, 'Love'),
(Angry, 'Angry'))
class Announcement(models.Model): class Announcement(models.Model):
...@@ -16,14 +10,59 @@ class Announcement(models.Model): ...@@ -16,14 +10,59 @@ class Announcement(models.Model):
author = models.ForeignKey(WidgetUser, on_delete=models.CASCADE) author = models.ForeignKey(WidgetUser, on_delete=models.CASCADE)
pub_datetime = models.DateTimeField(default=timezone.now, null=True, blank=True) pub_datetime = models.DateTimeField(default=timezone.now, null=True, blank=True)
def __str__(self): def date_format(self):
return self.title return '{}' .format(self.pub_datetime.strftime("%m/%d/%Y"))
def time_format(self):
return '{}' .format(self.pub_datetime.strftime("%H:%M %p"))
def getLike(self):
try:
return '{}'.format(Reaction.objects.get(name="Like", announcement=self).tally)
except:
return '0'
def getLove(self):
try:
return '{}'.format(Reaction.objects.get(name="Love", announcement=self).tally)
except:
return '0'
def getAngry(self):
try:
return '{}'.format(Reaction.objects.get(name="Angry", announcement=self).tally)
except:
return '0'
def get_absolute_url(self):
return reverse(
'announcements:announcement-details',
kwargs={'pk': self.pk},
)
def __str__(self):
return '{} by {} {} published {}, {}: {}'.format(
self.title,
self.author.first_name,
self.author.last_name,
self.pub_datetime.strftime("%m/%d/%Y"),
self.pub_datetime.strftime("%H:%M %p"),
self.body,
)
class Reaction(models.Model): class Reaction(models.Model):
Like = 'Like'
Love = 'Love'
Angry = 'Angry'
REACTIONS = [
((Like, 'Like'),
(Love, 'Love'),
(Angry, 'Angry'))
]
name = models.CharField(max_length=10, choices=REACTIONS, default=Like) name = models.CharField(max_length=10, choices=REACTIONS, default=Like)
tally = models.IntegerField(default = 0) tally = models.IntegerField(default = 0)
announcement = models.ForeignKey(Announcement, on_delete = models.CASCADE) announcement = models.ForeignKey(Announcement, on_delete = models.CASCADE)
def __str__(self): def __str__(self):
return self.name return '{} reactions for {}' .format(self.name, self.announcement)
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment