Files
@ cb4b0fac3871
Branch filter:
Location: symposion_app/symposion/cms/models.py - annotation
cb4b0fac3871
2.0 KiB
text/x-python
Merge branch 'django1.6-compatibility' of https://github.com/mbrochh/symposion into mbrochh-django1.6-compatibility
Conflicts:
symposion/boxes/urls.py
symposion/cms/urls.py
symposion/conference/urls.py
symposion/proposals/models.py
symposion/proposals/urls.py
symposion/reviews/urls.py
symposion/schedule/models.py
symposion/schedule/urls.py
symposion/speakers/urls.py
symposion/sponsorship/urls.py
symposion/teams/urls.py
Conflicts:
symposion/boxes/urls.py
symposion/cms/urls.py
symposion/conference/urls.py
symposion/proposals/models.py
symposion/proposals/urls.py
symposion/reviews/urls.py
symposion/schedule/models.py
symposion/schedule/urls.py
symposion/speakers/urls.py
symposion/sponsorship/urls.py
symposion/teams/urls.py
89fb12f72fbb 89fb12f72fbb 2665fd575869 b06daba446a6 2665fd575869 89fb12f72fbb 2665fd575869 b06daba446a6 b06daba446a6 b06daba446a6 b06daba446a6 b06daba446a6 b06daba446a6 b06daba446a6 b06daba446a6 b06daba446a6 2665fd575869 2665fd575869 b06daba446a6 2665fd575869 36ab6d599ffc b06daba446a6 b06daba446a6 b06daba446a6 b06daba446a6 36ab6d599ffc b06daba446a6 2665fd575869 b06daba446a6 b06daba446a6 89fb12f72fbb 89fb12f72fbb 89fb12f72fbb 2665fd575869 36ab6d599ffc 2665fd575869 36ab6d599ffc b06daba446a6 b06daba446a6 36ab6d599ffc 2665fd575869 2665fd575869 2665fd575869 36ab6d599ffc 4c194ed94cf5 4c194ed94cf5 4c194ed94cf5 36ab6d599ffc 2665fd575869 89fb12f72fbb b06daba446a6 36ab6d599ffc 2665fd575869 2665fd575869 2665fd575869 36ab6d599ffc 36ab6d599ffc b06daba446a6 b06daba446a6 b06daba446a6 89fb12f72fbb 89fb12f72fbb 89fb12f72fbb 89fb12f72fbb 89fb12f72fbb 89fb12f72fbb 89fb12f72fbb 36ab6d599ffc 89fb12f72fbb 89fb12f72fbb 36ab6d599ffc 89fb12f72fbb 89fb12f72fbb | import datetime
import os
import re
from django.conf import settings
from django.core.urlresolvers import reverse
from django.core.exceptions import ValidationError
from django.db import models
from django.utils.translation import ugettext_lazy as _
from markitup.fields import MarkupField
from taggit.managers import TaggableManager
import reversion
from .managers import PublishedPageManager
class Page(models.Model):
STATUS_CHOICES = (
(1, _("Draft")),
(2, _("Public")),
)
title = models.CharField(max_length=100)
path = models.CharField(max_length=100, unique=True)
body = MarkupField()
status = models.IntegerField(choices=STATUS_CHOICES, default=2)
publish_date = models.DateTimeField(default=datetime.datetime.now)
created = models.DateTimeField(editable=False, default=datetime.datetime.now)
updated = models.DateTimeField(editable=False, default=datetime.datetime.now)
tags = TaggableManager(blank=True)
published = PublishedPageManager()
def __unicode__(self):
return self.title
@models.permalink
def get_absolute_url(self):
return ("cms_page", [self.path])
@property
def is_community(self):
return self.path.lower().startswith("community/")
def save(self, *args, **kwargs):
self.updated = datetime.datetime.now()
super(Page, self).save(*args, **kwargs)
def clean_fields(self, exclude=None):
super(Page, self).clean_fields(exclude)
if not re.match(settings.SYMPOSION_PAGE_REGEX, self.path):
raise ValidationError(
{"path": [_("Path can only contain letters, numbers and hyphens and end with /")]})
reversion.register(Page)
def generate_filename(instance, filename):
return filename
class File(models.Model):
file = models.FileField(upload_to=generate_filename)
created = models.DateTimeField(default=datetime.datetime.now)
def download_url(self):
return reverse("file_download", args=[self.pk, os.path.basename(self.file.name).lower()])
|