diff options
author | luxagraf <sng@luxagraf.net> | 2012-09-22 22:27:04 -0400 |
---|---|---|
committer | luxagraf <sng@luxagraf.net> | 2012-09-22 22:27:04 -0400 |
commit | efb623af0bcb47d510501c282e1326b11343a29c (patch) | |
tree | 3a35fb19f5eba3b219c65277a5fb712cbe9604ac /app/projects/models | |
parent | 0b481fd7931c2ae20ca21f89a87f2ba6a6c01e10 (diff) |
site reorg
Diffstat (limited to 'app/projects/models')
-rw-r--r-- | app/projects/models/__init__.py | 4 | ||||
-rw-r--r-- | app/projects/models/base.py | 74 | ||||
-rw-r--r-- | app/projects/models/code.py | 25 | ||||
-rw-r--r-- | app/projects/models/fiveby.py | 58 | ||||
-rw-r--r-- | app/projects/models/natparks.py | 56 |
5 files changed, 217 insertions, 0 deletions
diff --git a/app/projects/models/__init__.py b/app/projects/models/__init__.py new file mode 100644 index 0000000..7fe6077 --- /dev/null +++ b/app/projects/models/__init__.py @@ -0,0 +1,4 @@ +from base import Project +from fiveby import FiveBy +from natparks import NationalParks +from code import Code
\ No newline at end of file diff --git a/app/projects/models/base.py b/app/projects/models/base.py new file mode 100644 index 0000000..23d2af4 --- /dev/null +++ b/app/projects/models/base.py @@ -0,0 +1,74 @@ +import datetime +from django.contrib.gis.db import models +from django.conf import settings +from django.contrib.sitemaps import Sitemap +from django.template.defaultfilters import truncatewords_html +from django.contrib.syndication.views import Feed + +from utils import markdown2 as markdown + + +from photos.models import PhotoGallery +from locations.models import Location,Region + + +def get_upload_path(self, filename): + return "images/project-thumbs/%s/%s" %(datetime.datetime.today().strftime("%Y"), filename) + +def markdown_processor(md): + html = markdown.markdown(md, safe_mode = False).split('<break>') + return html + + + +class Project(models.Model): + title = models.CharField(max_length=200) + subtitle = models.CharField(max_length=200, null=True, blank=True) + slug = models.SlugField(unique_for_date='pub_date') + lede = models.TextField(blank=True) + pub_date = models.DateTimeField('Date published') + PUB_STATUS = ( + (0, 'Draft'), + (1, 'Published'), + ) + status = models.IntegerField(choices=PUB_STATUS, default=0) + image = models.FileField(upload_to=get_upload_path, null=True,blank=True) + model_name = models.CharField(max_length=200, null=True) + + @property + def longitude(self): + '''Get the site's longitude.''' + return self.point.x + + @property + def latitude(self): + '''Get the site's latitude.''' + return self.point.y + + class Meta: + ordering = ('-pub_date',) + get_latest_by = 'pub_date' + app_label = 'projects' + + def __unicode__(self): + return self.title + + def get_absolute_url(self): + return "/%s/%s/" % ('projects', self.slug) + + def get_previous_published(self): + return self.get_previous_by_pub_date(status__exact=1) + + def get_next_published(self): + return self.get_next_by_pub_date(status__exact=1) + + +class ProjectSitemap(Sitemap): + changefreq = "monthly" + priority = 0.5 + + def items(self): + return Project.objects.filter(status=1) + + def lastmod(self, obj): + return obj.pub_date diff --git a/app/projects/models/code.py b/app/projects/models/code.py new file mode 100644 index 0000000..14a66f0 --- /dev/null +++ b/app/projects/models/code.py @@ -0,0 +1,25 @@ +from django.db import models + + +PUB_STATUS = ( + (0, 'Draft'), + (1, 'Published'), + ) + + + +class Code(models.Model): + name = models.CharField(max_length=254) + slug = models.SlugField() + date_created = models.DateField('Date Created') + status = models.IntegerField(choices=PUB_STATUS, default=0) + body_html = models.TextField(blank=True) + + class Meta: + verbose_name_plural = "Code" + app_label = 'projects' + ordering = ('-date_created',) + # Returns the string representation of the model. + def __unicode__(self): + return self.slug + diff --git a/app/projects/models/fiveby.py b/app/projects/models/fiveby.py new file mode 100644 index 0000000..45aa21d --- /dev/null +++ b/app/projects/models/fiveby.py @@ -0,0 +1,58 @@ +import datetime +from django.contrib.gis.db import models +from django.conf import settings +from django.contrib.sitemaps import Sitemap +from django.template.defaultfilters import truncatewords_html +from django.contrib.syndication.views import Feed + +from locations.models import Location,Region + +def get_upload_path(self, filename): + return "images/projects/videos/5x5/%s/%s" %(datetime.datetime.today().strftime("%Y"), filename) + +def get_image_upload_path(self, filename): + return "images/projects/5x5/%s/%s" %(datetime.datetime.today().strftime("%Y"), filename) + +class FiveBy(models.Model): + title = models.CharField(max_length=200) + slug = models.SlugField(unique_for_date='pub_date') + lede = models.TextField(blank=True) + image = models.FileField(upload_to=get_image_upload_path, null=True,blank=True) + videoh264 = models.FileField(upload_to=get_upload_path, null=True,blank=True) + videoogg = models.FileField(upload_to=get_upload_path, null=True,blank=True) + vimeo_link = models.CharField(max_length=200) + youtube_link = models.CharField(max_length=200) + pub_date = models.DateTimeField('Date published') + PUB_STATUS = ( + (0, 'Draft'), + (1, 'Published'), + ) + status = models.IntegerField(choices=PUB_STATUS, default=0) + point = models.PointField(null=True) + location = models.ForeignKey(Location, null=True) + region = models.ForeignKey(Region, null=True) + + + + class Meta: + ordering = ('-pub_date',) + get_latest_by = 'pub_date' + app_label = 'projects' + verbose_name_plural = '5x5' + + def __unicode__(self): + return self.title + + def get_absolute_url(self): + return "/%s/%s/%s/" % ('projects', '5x5', self.slug) + + @property + def longitude(self): + '''Get the site's longitude.''' + return self.point.x + + @property + def latitude(self): + '''Get the site's latitude.''' + return self.point.y + diff --git a/app/projects/models/natparks.py b/app/projects/models/natparks.py new file mode 100644 index 0000000..11fe6bb --- /dev/null +++ b/app/projects/models/natparks.py @@ -0,0 +1,56 @@ +from django.contrib.gis.db import models +from PIL import Image +from blog.models import Entry +from photos.models import PhotoGallery +from locations.models import State + + +PUB_STATUS = ( + (0, 'Draft'), + (1, 'Published'), + ) + + +import datetime +def get_upload_path(self, filename): + return "images/projects/np/%s/%s" %(datetime.datetime.today().strftime("%Y"), filename) + + +class NationalParks(models.Model): + type = models.CharField(max_length=50) + name = models.CharField(max_length=254) + state = models.ForeignKey(State, null=True) + size = models.CharField(max_length=10, null=True) + fee = models.CharField(max_length=5, null=True) + camping_fee = models.CharField(max_length=10, null=True) + url = models.CharField(max_length=250, null=True) + code= models.CharField(max_length=16) + unit_name= models.CharField(max_length=254) + date_visited_begin = models.DateField('Date Visited',null=True) + date_visited_end = models.DateField('Date Visited',null=True) + date_park_created = models.DateField('Date Park Created',null=True) + zoom= models.IntegerField(null=True) + mpoly = models.MultiPolygonField(null=True) + visited = models.BooleanField(default=False) + dek = models.TextField(null=True, blank=True) + tag_line = models.CharField(max_length=254, null=True) + post = models.ForeignKey(Entry, null=True) + gallery = models.ForeignKey(PhotoGallery, blank=True, null=True, verbose_name='photo set') + image = models.FileField(upload_to=get_upload_path, null=True,blank=True,help_text="width: 980px, height: > 450px") + image_height = models.CharField(max_length=20, null=True,blank=True) + image_width = models.CharField(max_length=20, null=True,blank=True) + objects = models.GeoManager() + + class Meta: + verbose_name_plural = "National Parks" + app_label = 'projects' + ordering = ('-visited','unit_name',) + # Returns the string representation of the model. + def __unicode__(self): + return self.unit_name + + def save(self): + #get image dimensions + img = Image.open(self.image) + self.image_width, self.image_height = img.size + super(NationalParks, self).save() |