models.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from django.db import models
  2. from django import forms
  3. from django.template.defaultfilters import slugify
  4. from trumbowyg.widgets import TrumbowygWidget
  5. from core.models import Groupe
  6. class Cat_Wiki(models.Model) :
  7. cw_titre = models.CharField("Titre", max_length = 128, unique = True)
  8. cw_titre_slgify = models.CharField("Titre Slugify", max_length = 128, blank = True, editable = False)
  9. class Meta :
  10. verbose_name = 'Catégories'
  11. verbose_name_plural = 'Catégories'
  12. def save(self, *args, **kwargs) :
  13. self.cw_titre_slgify = slugify(self.cw_titre)
  14. super(Cat_Wiki, self).save(*args, **kwargs)
  15. def __unicode__(self):
  16. return self.cw_titre
  17. def __str__(self):
  18. return '%s' % (self.cw_titre)
  19. class Wiki(models.Model) : #Architecture pour le Wiki
  20. w_titre = models.CharField("Titre", max_length = 128, unique = True)
  21. w_titre_slugify = models.CharField("Titre Slugify", max_length = 128, blank = True, editable = False)
  22. w_grp = models.ForeignKey(Groupe,verbose_name="Regroupement", blank = True, null = True, on_delete=models.PROTECT)
  23. w_cat = models.ManyToManyField(Cat_Wiki, verbose_name="Catégories" , blank = True)
  24. w_description = models.TextField("Résumé", blank = True)
  25. w_contenu = models.TextField("Contenu", blank = True)
  26. w_right = models.TextField("Contenu à droite", blank = True)
  27. w_publier = models.BooleanField("Publié", default = False)
  28. w_reading = models.IntegerField("Nb Lectures", default = 0)
  29. w_publdate = models.DateTimeField("Mise à jour le", auto_now_add=True)
  30. class Meta :
  31. verbose_name = 'Gestion du Wiki'
  32. verbose_name_plural = 'Gestion du Wiki'
  33. ordering = ['w_titre']
  34. def save(self, *args, **kwargs) :
  35. self.w_titre_slugify = slugify(self.w_titre)
  36. super(Wiki, self).save(*args, **kwargs)
  37. def __unicode__(self):
  38. return self.w_titre
  39. def __str__(self):
  40. return '%s' % (self.w_titre)
  41. class Wiki_search_Form(forms.Form):
  42. w_search = forms.CharField(label='Vous recherchez un page ?', max_length=100)
  43. class Wiki_Admin_Form(forms.ModelForm):
  44. class Meta:
  45. model = Wiki
  46. exclude = ['w_titre_slugify','w_reading']
  47. widgets = {
  48. 'w_contenu': TrumbowygWidget(attrs={'rows':4, 'cols':15}),
  49. 'w_right': TrumbowygWidget(attrs={'rows':4, 'cols':15}),
  50. }