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)
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']