+++ /dev/null
-from django.db import models
-from content.content_val import is_unique_name
-
-FORMAT_CHOICES = (
- ('rst', 'reStructuredText'),
- ('html', 'HTML'),
- )
-
-class Document(models.Model):
- title = models.CharField(maxlength=150)
- islive = models.BooleanField()
- folder = models.ForeignKey('Folder', null=True, blank=True)
- format = models.CharField(maxlength=10, choices=FORMAT_CHOICES)
- slug = models.SlugField(prepopulate_from=("title",), validator_list=[is_unique_name,])
- content = models.TextField()
-
- def __str__(self):
- return self.__unicode__()
-
- def __unicode__(self):
- return u'%s (%s)' %(self.title, self.slug)
-
- def save(self):
- super(Document, self).save()
- # now check if we just set our selves to be live
- if self.islive:
- if self.folder:
- otherdocs = Document.objects.filter(slug__exact=self.slug, islive__exact=True, folder__exact=self.folder).exclude(pk=self.id)
- else:
- otherdocs = Document.objects.filter(slug__exact=self.slug, islive__exact=True, folder__isnull=True).exclude(pk=self.id)
- for doc in otherdocs:
- doc.islive = False
- doc.save()
-
- def get_basic_url(self):
- folders = []
- curfolder = self.folder
- while curfolder != None:
- folders.append(curfolder.slug)
- curfolder = curfolder.parent
-
- folders.reverse()
- folderstring = "/".join(folders)
- if folderstring != u'':
- folderstring = "%s/" %(folderstring,)
-
- return "%s%s/" %(folderstring, self.slug)
-
- class Admin:
- pass
-
-class Folder(models.Model):
- title = models.CharField(maxlength=150)
- slug = models.SlugField(prepopulate_from=("title",))
- parent = models.ForeignKey('self', null=True, blank=True)
-
- def __str__(self):
- return self.__unicode__()
-
- def __unicode__(self):
- return u'%s' %(self.title)
-
- def get_basic_url(self):
- folders = []
- curfolder = self
- while curfolder != None:
- folders.append(curfolder.slug)
- curfolder = curfolder.parent
-
- folders.reverse()
- folderstring = "/".join(folders)
- if folderstring != u'':
- folderstring = "%s/" %(folderstring,)
-
- return "%s/" %(folderstring)
-
- class Admin:
- pass