X-Git-Url: https://git.mdrn.pl/prawokultury.git/blobdiff_plain/5d57db05564cb55a99f2088c50391296670ba8d6..fceff8de9a4a304549e5b4b3094f66071b9912ae:/questions/models.py diff --git a/questions/models.py b/questions/models.py index 06addd3..ed86730 100644 --- a/questions/models.py +++ b/questions/models.py @@ -7,6 +7,26 @@ from django.db import models from django.template import loader, Context from django.utils.translation import ugettext_lazy as _ from markupfield.fields import MarkupField +from taggit.models import TagBase, GenericTaggedItemBase +from taggit_autosuggest.managers import TaggableManager +from fnpdjango.utils.text.slughifi import slughifi + + +class Tag(TagBase): + def slugify(self, tag, i=None): + slug = slughifi(tag) + if i is not None: + slug += "_%d" % i + return slug + + class Meta: + verbose_name = _("Tag") + verbose_name_plural = _("Tags") + + +class TagItem(GenericTaggedItemBase): + tag = models.ForeignKey(Tag, related_name="items") + class Question(models.Model): email = models.EmailField(_('contact e-mail'), null=True, blank=True) @@ -25,6 +45,8 @@ class Question(models.Model): help_text=_('Check to display answered question on site.')) published_at = models.DateTimeField(_('published at'), null=True, blank=True, db_index=True) + tags = TaggableManager(through=TagItem, blank=True) + class Meta: ordering = ['-created_at'] verbose_name = _('question') @@ -55,6 +77,24 @@ class Question(models.Model): msg.attach_alternative(html_content, "text/html") msg.send() + def ack_author(self): + if not self.email: + return + site = Site.objects.get_current() + context = Context({ + 'question': self, + 'site': site, + }) + text_content = loader.get_template('questions/ack_mail.txt' + ).render(context) + html_content = loader.get_template('questions/ack_mail.html' + ).render(context) + msg = EmailMultiAlternatives( + u'Twoje pytanie zostało zarejestrowane w serwisie %s.' % site.domain, + text_content, settings.SERVER_EMAIL, [self.email]) + msg.attach_alternative(html_content, "text/html") + msg.send() + def save(self, *args, **kwargs): now = datetime.now() notify = False