X-Git-Url: https://git.mdrn.pl/prawokultury.git/blobdiff_plain/3a2b863daf220221f8360db6e24072c6e102a50d..c66b8465f48325fe5fdc0fcf600f97dcc7bb7a26:/questions/models.py diff --git a/questions/models.py b/questions/models.py index 2955ddb..746ad84 100644 --- a/questions/models.py +++ b/questions/models.py @@ -7,9 +7,42 @@ 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 TagCategory(models.Model): + name = models.CharField(verbose_name=_('Name'), unique = True, max_length = 100) + slug = models.SlugField(verbose_name=_('Slug'), unique = True, max_length = 100) + + class Meta: + verbose_name = _("Tag Category") + verbose_name_plural = _("Tag Categories") + + def __unicode__(self): + return self.name + + +class Tag(TagBase): + def slugify(self, tag, i=None): + slug = slughifi(tag) + if i is not None: + slug += "_%d" % i + return slug + + category = models.ForeignKey(TagCategory, blank = True, null = True, on_delete = models.SET_NULL, related_name = 'tags') + click_count = models.IntegerField(null = False, default = 0) + + 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) question = models.TextField(_('question'), db_index=True) @@ -27,7 +60,7 @@ 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() + tags = TaggableManager(through=TagItem, blank=True) class Meta: ordering = ['-created_at']