from django.utils.translation import ugettext_lazy as _ from django.db import models from autoslug.fields import AutoSlugField from courses.models import Activity from users.models import User from datetime import date """ It's one kind of activity available for a Topic. It works like a 'topic' of forum, which users can post to it and answer posts of it. """ class Forum(Activity): description = models.TextField(_('Description'), blank = True) modification_date = models.DateTimeField(_('Modification Date'), auto_now = True) create_date = models.DateTimeField(_('Create Date'), auto_now_add = True) class Meta: verbose_name = _('Forum') verbose_name_plural = _('Foruns') app_label ='forum' def __str__(self): return self.name def is_closed(self): today = date.today() return self.limit_date < today """ It represents a post made in a forum (topic) """ class Post(models.Model): user = models.ForeignKey(User, verbose_name = _('Autor')) message = models.TextField(_('Post message'), blank = False) modification_date = models.DateTimeField(_('Modification Date'), auto_now = True) post_date = models.DateTimeField(_('Post Date'), auto_now_add = True) forum = models.ForeignKey(Forum, verbose_name = _('Forum')) class Meta: verbose_name = _('Post') verbose_name_plural = _('Posts') app_label ='forum' def __str__(self): return ''.join([self.user.name, " / ", str(self.post_date)]) def is_modified(self): create = self.post_date.strftime("%Y-%m-%d %H:%M:%S") edit = self.modification_date.strftime("%Y-%m-%d %H:%M:%S") if create != edit: return True return False """ It represents an answer to a forum's post """ class PostAnswer(models.Model): user = models.ForeignKey(User, verbose_name = _('Autor')) post = models.ForeignKey(Post, verbose_name = _('Post')) message = models.TextField(_('Answer message'), blank = False) modification_date = models.DateTimeField(_('Modification Date'), auto_now = True) answer_date = models.DateTimeField(_('Answer Date'), auto_now_add = True) class Meta: verbose_name = _('Post Answer') verbose_name_plural = _('Post Answers') app_label ='forum' def __str__(self): return ''.join([self.user.name, " / ", str(self.answer_date)]) def is_modified(self): create = self.answer_date.strftime("%Y-%m-%d %H:%M:%S") edit = self.modification_date.strftime("%Y-%m-%d %H:%M:%S") if create != edit: return True return False