diff options
-rw-r--r-- | apps/projects/models.py | 142 | ||||
-rw-r--r-- | apps/projects/models/__init__.py | 2 | ||||
-rw-r--r-- | apps/projects/models/base.py | 63 | ||||
-rw-r--r-- | apps/projects/models/fiveby.py | 58 | ||||
-rw-r--r-- | apps/projects/urls.py | 15 | ||||
-rw-r--r-- | apps/projects/views.py | 22 | ||||
-rw-r--r-- | media/css/base.css | 2 | ||||
-rw-r--r-- | media/sass/_projects.sass | 25 | ||||
-rw-r--r-- | media/sass/base.sass | 4 | ||||
-rw-r--r-- | templates/archives/projects.html | 31 | ||||
-rw-r--r-- | templates/details/5x5.html | 19 | ||||
-rw-r--r-- | templates/projects/base.html | 20 |
12 files changed, 232 insertions, 171 deletions
diff --git a/apps/projects/models.py b/apps/projects/models.py deleted file mode 100644 index bdbcd82..0000000 --- a/apps/projects/models.py +++ /dev/null @@ -1,142 +0,0 @@ -import datetime -from django.contrib.gis.db import models -from django.conf import settings -from django.contrib.syndication.feeds import Feed -from django.contrib.sitemaps import Sitemap -from django.template.defaultfilters import truncatewords_html - - -import markdown2 as markdown -from tagging.fields import TagField -from tagging.models import Tag - -from photos.models import PhotoGallery -from locations.models import Location,Region -#from locations.signals import create_location_item -from blog.signals import update_recent - -def get_upload_path(self, filename): - return "images/post-thumbs/%s/%s" %(datetime.datetime.today().strftime("%Y"), filename) - -def markdown_processor(md): - processed = markdown.markdown(md, safe_mode = False).split('<break>') - html = processed[0]+processed[1] - lede = processed[0] - return html, lede - -class PostImage(models.Model): - title = models.CharField(max_length=100) - image = models.ImageField(upload_to="%s%s" %(settings.IMAGES_ROOT, datetime.datetime.today().strftime("%Y"))) - - def __unicode__(self): - return self.title - - def output_tags(self): - return force_unicode('<img src="%s%s" alt="%s" class="postpic"/>' % \ - (settings.IMAGES_URL, self.image.url.split('images')[1].split('/',1)[1], self.title)) - - -class Topic(models.Model): - name = models.CharField(max_length=100) - slug = models.SlugField() - - def __unicode__(self): - return self.name - - def get_absolute_url(self): - return "/topics/%s/" % (self.slug) - -class Entry(models.Model): - title = models.CharField(max_length=200) - slug = models.SlugField(unique_for_date='pub_date') - lede = models.TextField(blank=True) - body_html = models.TextField(blank=True) - body_markdown = models.TextField() - dek = models.TextField(null=True,blank=True) - pub_date = models.DateTimeField('Date published') - tags = TagField() - enable_comments = models.BooleanField(default=True) - point = models.PointField(null=True) - location = models.ForeignKey(Location, null=True) - region = models.ForeignKey(Region, null=True) - PUB_STATUS = ( - (0, 'Draft'), - (1, 'Published'), - ) - status = models.IntegerField(choices=PUB_STATUS, default=0) - photo_gallery = models.ForeignKey(PhotoGallery, blank=True, null=True, verbose_name='photo set') - thumbnail = models.FileField(upload_to=get_upload_path, null=True,blank=True) - title_keywords = models.CharField(max_length=200, null=True, blank=True) - topics = models.ManyToManyField(Topic, blank=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' - verbose_name_plural = 'entries' - - def __unicode__(self): - return self.title - - def get_absolute_url(self): - return "/%s/%s/" % (self.pub_date.strftime("%Y/%b/%d").lower(), 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) - - def get_tags(self): - return Tag.objects.get_for_object(self) - - def comment_period_open(self): - return self.enable_comments and datetime.datetime.today() - datetime.timedelta(30) <= self.pub_date - - def get_thumbnail_url(self): - if settings.DEVELOPMENT == True: - return '%s%s' %(settings.IMAGES_URL, self.thumbnail.url[35:]) - else: - return '%s%s' %(settings.IMAGES_URL, self.thumbnail.url[33:]) - - def save(self): - html,lede = markdown_processor(self.body_markdown) - self.body_html = html - self.lede = lede - self.dek == markdown.markdown(self.dek, safe_mode = False) - super(Entry, self).save() - -class BlogSitemap(Sitemap): - changefreq = "never" - priority = 1.0 - - def items(self): - return Entry.objects.filter(status=1) - - def lastmod(self, obj): - return obj.pub_date - -class LatestFull(Feed): - title = "Luxagraf: Topographical Writings" - link = "/writing/" - description = "Latest postings to luxagraf.net" - description_template = 'feeds/blog_description.html' - - def items(self): - return Entry.objects.filter(status__exact=1).order_by('-pub_date')[:10] - - -from django.dispatch import dispatcher -from django.db.models import signals - -signals.post_save.connect(update_recent, sender=Entry) - diff --git a/apps/projects/models/__init__.py b/apps/projects/models/__init__.py new file mode 100644 index 0000000..b29933a --- /dev/null +++ b/apps/projects/models/__init__.py @@ -0,0 +1,2 @@ +from base import Project +from fiveby import FiveBy
\ No newline at end of file diff --git a/apps/projects/models/base.py b/apps/projects/models/base.py new file mode 100644 index 0000000..bc42918 --- /dev/null +++ b/apps/projects/models/base.py @@ -0,0 +1,63 @@ +import datetime +from django.contrib.gis.db import models +from django.conf import settings +from django.contrib.syndication.feeds import Feed +from django.contrib.sitemaps import Sitemap +from django.template.defaultfilters import truncatewords_html + + +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) + + @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)
\ No newline at end of file diff --git a/apps/projects/models/fiveby.py b/apps/projects/models/fiveby.py new file mode 100644 index 0000000..5415ee7 --- /dev/null +++ b/apps/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.syndication.feeds import Feed +from django.contrib.sitemaps import Sitemap +from django.template.defaultfilters import truncatewords_html + +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 +
\ No newline at end of file diff --git a/apps/projects/urls.py b/apps/projects/urls.py index ed2dbfb..3ea4b45 100644 --- a/apps/projects/urls.py +++ b/apps/projects/urls.py @@ -1,15 +1,16 @@ from django.conf.urls.defaults import * from django.views.generic.list_detail import object_list from django.views.generic.simple import redirect_to,direct_to_template +from django.views.generic import list_detail -#from blog.models import Entry - +from projects.models.base import Project +projects = { + 'queryset': Project.objects.filter(status__exact=1).order_by('-pub_date'), +} urlpatterns = patterns('', - - #(r'(?P<slug>[-\w]+)/(?P<page>\d+)/$', 'blog.views.entry_list_by_area'), - #(r'(?P<page>\d+)/$', 'blog.views.entry_list'), - #(r'(?P<slug>[-\w]+)/$', redirect_to, {'url': '/writing/%(slug)s/1/'}), - (r'^$', direct_to_template, {'template': 'projects/base.html'}), + (r'(?P<slug>[-\w]+)/$', 'projects.views.detail'), + (r'^$',list_detail.object_list, dict(projects, template_name='archives/projects.html')), ) + diff --git a/apps/projects/views.py b/apps/projects/views.py new file mode 100644 index 0000000..8103270 --- /dev/null +++ b/apps/projects/views.py @@ -0,0 +1,22 @@ +from django.shortcuts import render_to_response,get_object_or_404 +from django.template import RequestContext +from django.views.generic.list_detail import object_list +from django.db.models import get_model + + +from projects.models.base import Project +from projects.models.fiveby import FiveBy + +projects = {'5x5':'FiveBy','6x6':'SixBy'} + +""" +Projects by slug +""" +def detail(request,slug): + name = projects[slug] + model = get_model('projects', name) + qs = model.objects.filter(status__exact=1) + template = 'details/%s.html' %(slug) + return object_list(request, queryset=qs, template_name=template,) + + diff --git a/media/css/base.css b/media/css/base.css index 146ee15..1c6a851 100644 --- a/media/css/base.css +++ b/media/css/base.css @@ -1 +1 @@ -ol,ul,li,dl{list-style:none;margin:0;padding:0;border:0;outline:0;background:transparent}blockquote,q{quotes:none}:focus{outline:0}header,section,footer,aside,article,nav{display:block;text-align:left}*:focus{outline:#b53a04 dotted thin}body{background:white;font-family:Hoefler Text, Georgia, Times New Roman, Times, serif;font-size:62.5%;line-height:23px;color:#201a11;text-align:center}p{margin:0.8em 0 0 0}a{text-decoration:none;color:#201a11}a:visited{color:#201a11;text-decoration:none}a:hover{color:#b53a04;text-decoration:none}header{width:980px;margin:0 auto 40px}header{border-bottom:#201a11 2px solid;height:160px}header h1 a{background:url('../img/logo.gif') no-repeat left bottom;height:158px;width:400px;float:left;text-indent:-1000px}header h2{float:left;text-indent:-1000px;display:none}header nav{float:left;margin-top:110px;margin-left:40px}header nav li{display:inline;font-size:1.1em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:1.2em;margin-left:4px}header nav a:hover{color:#b53a04}footer{width:980px;background:#201a11;height:36px;color:#888;font-size:1.2em;margin:80px auto 0}footer nav li{float:left;font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;text-transform:uppercase;line-height:36px;margin-left:8px}footer a{color:#888 !important}footer a:hover{color:#b53a04 !important}footer nav{float:right;margin-right:8px}footer p{float:left;font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;padding-left:8px;line-height:36px;margin:0}article{width:980px;margin:0 auto}article ul{font-size:1.5em}ul#breadcrumbs{font-weight:normal;font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:110%}ul#breadcrumbs li{display:inline}.hide{display:none}img.postpic,img.postpicright{display:block;margin:.3em .6em;border:#201a11 10px solid;clear:both}img.postpic{float:left;margin-left:0;margin-top:.3em}img.postpicright{float:right;margin-right:0}img.postpicleft{float:left;margin:5px}img.picfull{border:#201a11 10px solid}img.post-image{margin:0 10px 0 0;float:left;border:#201a11 10px solid !important}.hide,.dsq-brlink,img[src='http://maps.gstatic.com/intl/en_us/mapfiles/poweredby.png'],.terms-of-use-link,#dsq-comments-count{display:"none"}div[dir='ltr'] span{width:0;visibility:collapse}p.pull-quote{font-size:14px !important;font-style:italic !important}sup{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;font-size:.6em}#writing-archive{margin-top:72px;margin-bottom:36px}#writing-archive li{clear:both}#writing-archive h3{font-family:Helvetica, Verdana, sans-serif;font-size:1.6em;line-height:1.3em;font-weight:normal;margin:0}#writing-archive div{width:420px;float:left}#writing-archive div.img{width:520px;margin-left:20px;margin-bottom:36px}#writing-archive p{margin:0;font-size:1.1em}#writing-archive .location,#writing-archive time{font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;line-height:3em;font-size:.7em}#writing-archive img{border:#201a11 10px solid}body#writing-detail article{font-size:1.7em;line-height:1.5em}body#writing-detail article header{border:none;height:auto;width:auto;margin:0 0 0 0}body#writing-detail article h1{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal;font-size:1.8em;line-height:1.2em;margin:0}body#writing-detail article aside{font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:0.7em;line-height:2.3em}body#writing-detail article aside a{color:#201a11}body#writing-detail article aside a:hover{color:#b53a04}body#writing-detail article dl{font-size:100%}body#writing-detail article dl dt{font-style:italic;margin:9px}body#writing-detail article a{color:#b53a04}body#writing-detail article h3{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal;font-size:1.6em;line-height:1.2em}.single article header,.single article div#post-body{margin-left:200px !important;width:560px !important}.single article header p:nth-of-type(1),.single article div#post-body p:nth-of-type(1){font-size:1.2em;line-height:1.4em}.double article header{float:left;width:180px !important;text-align:right !important;margin-top:20px !important}.double article header aside section{text-align:right !important;font-size:1em}.double article div#post-body{width:780px;float:left;margin-left:20px}.double article div#post-body div.col{width:350px;float:left;margin:0 40px 0 0}.double article div#post-body img.picwide{clear:both;margin:30px 0 30px -200px;border:#201a11 10px solid}.double article div#post-body div.narrow{width:520px}span.drop{font-size:4.8em;display:block;float:left;padding:38px 10px 5px 0;overflow:visible}span.drop-small{font-size:2.9em;display:block;float:left;padding:19px 8px 5px 0;overflow:visible}blockquote{font-size:.8em}ol.footnote{font-size:12px;margin:18px 0}ol.footnote li{margin:12px 0;line-height:.8em}ol.footnote li p{line-height:18px !important;font-size:12px !important}ol.footnote li a,ol.footnote li span{font-size:12px}section#post-metadata{width:560px;border-top:#201a11 1px dotted;border-bottom:#201a11 1px dotted;margin:24px 0 24px 200px;font-size:0.8em;padding-bottom:8px}section#page-navigation{width:980px;margin:24px 0 0 0;text-transform:uppercase;font-size:.5em}section#page-navigation li#next{float:right;font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;margin-right:140px}section#page-navigation li#prev{float:left;font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;margin-left:120px}section#comments{clear:both;width:520px;margin:24px 0 24px 200px;font-size:.8em}section#comments h4{margin-top:96px;font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal;text-transform:uppercase;font-size:1.3em}h4 a.disqus-link-count{color:#201a11 !important}#pagination{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;width:980px;clear:both;margin:0;border-top:#201a11 1px dotted;border-bottom:#201a11 1px dotted;text-align:center}#pagination .pagination{margin:8px 0}#pagination .current{color:#b53a04}body.dubcol footer nav li{font-size:0.6em}h4.notes{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;font-weight:bold;text-transform:uppercase}dl.addendum dt{font-style:italic;margin:0.8em 0 0 0;margin-left:-30px !important;text-indent:-30px;padding-left:30px}dl.addendum dd{margin:0.8em 0 0 0}ul#dsq-comments{font-size:1.2em}.dsq-comment-cite{font-family:Helvetica, Verdana, sans-serif;font-size:.9em !important;font-weight:normal;text-transform:uppercase}.dsq-comment-header-time,.dsq-comment-footer{font-family:Helvetica, Verdana, sans-serif}.dsq-comment-footer{font-size:.8em}#dsq-comments-title{display:none !important}#photo-archive article{width:980px}#photo-archive article h1{display:none}ul#photo-galleries{margin-left:-10px}ul#photo-galleries li{float:left;margin:10px;width:310px;position:relative;display:block}ul#photo-galleries div.figure{border:10px #201a11 solid;height:350px}ul#photo-galleries div.figure img{border:none}ul#photo-galleries span.legend{display:block;color:#888;padding:10px 10px 10px 15px;font-size:85%;line-height:18px;width:285px;background:#201a11;-khtml-opacity:0.9;opacity:0.9;position:absolute;bottom:0;left:0}ul#photo-galleries h3{color:#fff;padding:0;margin:3px 0;font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase}ul#photo-galleries p{margin:0}.map-legend{width:160px;margin-top:24px;float:left}.map-legend h4{font-size:1.1em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:1.4em;margin:8px 0}.map-legend li{font-size:90%;margin:0;line-height:20px}.clearfix{clear:both}#map-canvas{float:left;width:760px;height:500px;border:#201a11 10px solid;margin-left:40px;margin-top:24px}section#location #map-canvas{width:295px;height:350px;border:#201a11 10px solid;margin:10px 0 0 5px}.infowin{line-height:18px;margin-bottom:16px}.infowin p{font-size:1.4em;line-height:1.4em}.infowin h4{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;font-size:2.4em;margin:6px 0 0 0}.infowin a{color:#b53a04 !important;border-bottom:1px dotted #b53a04}.infowin .date{color:#888;text-align:center;text-transform:uppercase;display:block;text-align:left;margin:6px 0 0;font-size:1.2em}body#about section{clear:both;margin-top:24px}body#about section ul{font-size:1em;margin:18px}body#about section li{margin:9px}body#about section li a{font-weight:bold}.image{float:left;width:180px;margin-top:48px}.image img{border:#201a11 10px solid}.content{float:left;margin-left:20px;width:540px;font-size:1.6em}.content h3{font-family:Helvetica, Verdana, sans-serif;font-size:1.6em;line-height:1.3em;font-weight:normal;margin:0}section#post{margin-left:200px}section#post h1{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal}.contact-form li{clear:both;width:440px;padding:4px 0}.contact-form dt{float:left;font-family:Helvetica, Verdana, sans-serif;font-size:1.6em;line-height:1.3em;font-weight:normal;text-align:right;font-size:.9em}.contact-form dt label{font-style:normal;text-align:right}.contact-form dd{text-align:right;margin-top:4px}.contact-form dd input#id_name,.contact-form dd input#id_email,.contact-form dd input#id_subject_line{width:298px}body#projects h3{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal}body#projects article p{font-size:1.4em}#featured-image img{margin-left:20px;margin-bottom:78px}section#writing-tease,section#currently{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;text-transform:uppercase;font-size:.8em;clear:both;width:980px;padding-top:20px;border-top:#b9b9b9 1px dotted}section#currently{padding:0;margin-bottom:0px;margin-top:36px;border-top:#201a11 1px solid}section#currently div.project-tease{font-size:18px;line-height:16px;margin-top:8px}section#currently div.project-tease h4{font-size:64px;line-height:50px;float:left;margin:0}section#currently div.project-tease h4 span{font-size:36px}section#currently div.project-tease a{display:block;width:220px;float:left}section#currently div.project-tease p{font-size:.7em;text-transform:none;line-height:50px;margin-left:440px;font-family:Hoefler Text, Georgia, Times New Roman, Times, serif}section#currently div.project-tease p cite{padding-left:4px}section#fromthearc{clear:both}section#fromthearc li{float:left;width:300px;margin-bottom:20px}section#fromthearc h2{font-size:1.1em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:2em;margin:0}section#fromthearc .col2{margin-left:40px;margin-right:40px}section#fromthearc h3{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal;font-size:1.2em;margin-bottom:12px;min-height:50px}section#fromthearc .location,section#fromthearc time{font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;line-height:2em;font-size:.7em}section#fromthearc p{margin:0;text-align:justify} +ol,ul,li,dl{list-style:none;margin:0;padding:0;border:0;outline:0;background:transparent}blockquote,q{quotes:none}:focus{outline:0}header,section,footer,aside,article,nav{display:block;text-align:left}*:focus{outline:#b53a04 dotted thin}body{background:white;font-family:Hoefler Text, Georgia, Times New Roman, Times, serif;font-size:62.5%;line-height:23px;color:#201a11;text-align:center}p{margin:0.8em 0 0 0}a{text-decoration:none;color:#201a11}a:visited{color:#201a11;text-decoration:none}a:hover{color:#b53a04;text-decoration:none}header{width:980px;margin:0 auto 40px}header{border-bottom:#201a11 2px solid;height:160px}header h1 a{background:url('../img/logo.gif') no-repeat left bottom;height:158px;width:400px;float:left;text-indent:-1000px}header h2{float:left;text-indent:-1000px;display:none}header nav{float:left;margin-top:110px;margin-left:40px}header nav li{display:inline;font-size:1.1em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:1.2em;margin-left:4px}header nav a:hover{color:#b53a04}footer{width:980px;background:#201a11;height:36px;color:#888;font-size:1.2em;margin:80px auto 0}footer nav li{float:left;font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;text-transform:uppercase;line-height:36px;margin-left:8px}footer a{color:#888 !important}footer a:hover{color:#b53a04 !important}footer nav{float:right;margin-right:8px}footer p{float:left;font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;padding-left:8px;line-height:36px;margin:0}article{width:980px;margin:0 auto}article ul{font-size:1.5em}ul#breadcrumbs{font-weight:normal;font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:110%}ul#breadcrumbs li{display:inline}.hide{display:none}img.postpic,img.postpicright{display:block;margin:.3em .6em;border:#201a11 10px solid;clear:both}img.postpic{float:left;margin-left:0;margin-top:.3em}img.postpicright{float:right;margin-right:0}img.postpicleft{float:left;margin:5px}img.picfull{border:#201a11 10px solid}img.post-image{margin:0 10px 0 0;float:left;border:#201a11 10px solid !important}.hide,.dsq-brlink,img[src='http://maps.gstatic.com/intl/en_us/mapfiles/poweredby.png'],.terms-of-use-link,#dsq-comments-count{display:"none"}div[dir='ltr'] span{width:0;visibility:collapse}p.pull-quote{font-size:14px !important;font-style:italic !important}sup{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;font-size:.6em}#writing-archive{margin-top:72px;margin-bottom:36px}#writing-archive li{clear:both}#writing-archive h3{font-family:Helvetica, Verdana, sans-serif;font-size:1.6em;line-height:1.3em;font-weight:normal;margin:0}#writing-archive div{width:420px;float:left}#writing-archive div.img{width:520px;margin-left:20px;margin-bottom:36px}#writing-archive p{margin:0;font-size:1.1em}#writing-archive .location,#writing-archive time{font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;line-height:3em;font-size:.7em}#writing-archive img{border:#201a11 10px solid}body#writing-detail article{font-size:1.7em;line-height:1.5em}body#writing-detail article header{border:none;height:auto;width:auto;margin:0 0 0 0}body#writing-detail article h1{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal;font-size:1.8em;line-height:1.2em;margin:0}body#writing-detail article aside{font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:0.7em;line-height:2.3em}body#writing-detail article aside a{color:#201a11}body#writing-detail article aside a:hover{color:#b53a04}body#writing-detail article dl{font-size:100%}body#writing-detail article dl dt{font-style:italic;margin:9px}body#writing-detail article a{color:#b53a04}body#writing-detail article h3{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal;font-size:1.6em;line-height:1.2em}.single article header,.single article div#post-body{margin-left:200px !important;width:560px !important}.single article header p:nth-of-type(1),.single article div#post-body p:nth-of-type(1){font-size:1.2em;line-height:1.4em}.double article header{float:left;width:180px !important;text-align:right !important;margin-top:20px !important}.double article header aside section{text-align:right !important;font-size:1em}.double article div#post-body{width:780px;float:left;margin-left:20px}.double article div#post-body div.col{width:350px;float:left;margin:0 40px 0 0}.double article div#post-body img.picwide{clear:both;margin:30px 0 30px -200px;border:#201a11 10px solid}.double article div#post-body div.narrow{width:520px}span.drop{font-size:4.8em;display:block;float:left;padding:38px 10px 5px 0;overflow:visible}span.drop-small{font-size:2.9em;display:block;float:left;padding:19px 8px 5px 0;overflow:visible}blockquote{font-size:.8em}ol.footnote{font-size:12px;margin:18px 0}ol.footnote li{margin:12px 0;line-height:.8em}ol.footnote li p{line-height:18px !important;font-size:12px !important}ol.footnote li a,ol.footnote li span{font-size:12px}section#post-metadata{width:560px;border-top:#201a11 1px dotted;border-bottom:#201a11 1px dotted;margin:24px 0 24px 200px;font-size:0.8em;padding-bottom:8px}section#page-navigation{width:980px;margin:24px 0 0 0;text-transform:uppercase;font-size:.5em}section#page-navigation li#next{float:right;font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;margin-right:140px}section#page-navigation li#prev{float:left;font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;margin-left:120px}section#comments{clear:both;width:520px;margin:24px 0 24px 200px;font-size:.8em}section#comments h4{margin-top:96px;font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal;text-transform:uppercase;font-size:1.3em}h4 a.disqus-link-count{color:#201a11 !important}#pagination{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;width:980px;clear:both;margin:0;border-top:#201a11 1px dotted;border-bottom:#201a11 1px dotted;text-align:center}#pagination .pagination{margin:8px 0}#pagination .current{color:#b53a04}body.dubcol footer nav li{font-size:0.6em}h4.notes{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;font-weight:bold;text-transform:uppercase}dl.addendum dt{font-style:italic;margin:0.8em 0 0 0;margin-left:-30px !important;text-indent:-30px;padding-left:30px}dl.addendum dd{margin:0.8em 0 0 0}ul#dsq-comments{font-size:1.2em}.dsq-comment-cite{font-family:Helvetica, Verdana, sans-serif;font-size:.9em !important;font-weight:normal;text-transform:uppercase}.dsq-comment-header-time,.dsq-comment-footer{font-family:Helvetica, Verdana, sans-serif}.dsq-comment-footer{font-size:.8em}#dsq-comments-title{display:none !important}#photo-archive article{width:980px}#photo-archive article h1{display:none}ul#photo-galleries{margin-left:-10px}ul#photo-galleries li{float:left;margin:10px;width:310px;position:relative;display:block}ul#photo-galleries div.figure{border:10px #201a11 solid;height:350px}ul#photo-galleries div.figure img{border:none}ul#photo-galleries span.legend{display:block;color:#888;padding:10px 10px 10px 15px;font-size:85%;line-height:18px;width:285px;background:#201a11;-khtml-opacity:0.9;opacity:0.9;position:absolute;bottom:0;left:0}ul#photo-galleries h3{color:#fff;padding:0;margin:3px 0;font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase}ul#photo-galleries p{margin:0}.map-legend{width:160px;margin-top:24px;float:left}.map-legend h4{font-size:1.1em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:1.4em;margin:8px 0}.map-legend li{font-size:90%;margin:0;line-height:20px}.clearfix{clear:both}#map-canvas{float:left;width:760px;height:500px;border:#201a11 10px solid;margin-left:40px;margin-top:24px}section#location #map-canvas{width:295px;height:350px;border:#201a11 10px solid;margin:10px 0 0 5px}.infowin{line-height:18px;margin-bottom:16px}.infowin p{font-size:1.4em;line-height:1.4em}.infowin h4{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;font-size:2.4em;margin:6px 0 0 0}.infowin a{color:#b53a04 !important;border-bottom:1px dotted #b53a04}.infowin .date{color:#888;text-align:center;text-transform:uppercase;display:block;text-align:left;margin:6px 0 0;font-size:1.2em}body#about section{clear:both;margin-top:24px}body#about section ul{font-size:1em;margin:18px}body#about section li{margin:9px}body#about section li a{font-weight:bold}.image{float:left;width:180px;margin-top:48px}.image img{border:#201a11 10px solid}.content{float:left;margin-left:20px;width:540px;font-size:1.6em}.content h3{font-family:Helvetica, Verdana, sans-serif;font-size:1.6em;line-height:1.3em;font-weight:normal;margin:0}section#post{margin-left:200px}section#post h1{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal}.contact-form li{clear:both;width:440px;padding:4px 0}.contact-form dt{float:left;font-family:Helvetica, Verdana, sans-serif;font-size:1.6em;line-height:1.3em;font-weight:normal;text-align:right;font-size:.9em}.contact-form dt label{font-style:normal;text-align:right}.contact-form dd{text-align:right;margin-top:4px}.contact-form dd input#id_name,.contact-form dd input#id_email,.contact-form dd input#id_subject_line{width:298px}li.project-tease{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;font-size:18px;line-height:16px;margin-top:36px}li.project-tease h4{font-size:64px;line-height:50px;float:left;margin:0}li.project-tease h4 span{font-size:36px}li.project-tease a{display:block;width:175px;float:left}li.project-tease div.img{float:right;width:540px;margin-bottom:36px}li.project-tease div.img img{border:#201a11 10px solid}body#projects h3{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal}body#projects article p{font-size:1.4em}#featured-image img{margin-left:20px;margin-bottom:78px}section#writing-tease,section#currently{font-family:Helvetica, Verdana, sans-serif;font-size:1em;font-weight:normal;text-transform:uppercase;font-size:.8em;clear:both;width:980px;padding-top:20px;border-top:#b9b9b9 1px dotted}section#currently{padding:0;margin-bottom:0px;margin-top:36px;border-top:#201a11 1px solid}section#currently div.project-tease{font-size:18px;line-height:16px;margin-top:8px}section#currently div.project-tease h4{font-size:64px;line-height:50px;float:left;margin:0}section#currently div.project-tease h4 span{font-size:36px}section#currently div.project-tease a{display:block;width:220px;float:left}section#currently div.project-tease p{font-size:.7em;text-transform:none;line-height:50px;margin-left:440px;font-family:Hoefler Text, Georgia, Times New Roman, Times, serif}section#currently div.project-tease p cite{padding-left:4px}section#fromthearc{clear:both}section#fromthearc li{float:left;width:300px;margin-bottom:20px}section#fromthearc h2{font-size:1.1em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;font-size:2em;margin:0}section#fromthearc .col2{margin-left:40px;margin-right:40px}section#fromthearc h3{font-family:Helvetica, Verdana, sans-serif;font-size:2em;line-height:1.5em;font-weight:normal;font-size:1.2em;margin-bottom:12px;min-height:50px}section#fromthearc .location,section#fromthearc time{font-size:0.8em;letter-spacing:1px;line-height:1.2em;text-transform:uppercase;line-height:2em;font-size:.7em}section#fromthearc p{margin:0;text-align:justify} diff --git a/media/sass/_projects.sass b/media/sass/_projects.sass new file mode 100644 index 0000000..60b0db8 --- /dev/null +++ b/media/sass/_projects.sass @@ -0,0 +1,25 @@ +li.project-tease + +sm-sans + font-size: 18px + line-height: 16px + margin-top: 36px + h4 + + font-size: 64px + line-height: 50px + float: left + margin: 0 + span + font-size: 36px + + a + display: block + width= 175px + float: left + + div.img + float: right + width = !col9+!pad + margin-bottom= 36px + img + border= !luxagraf_brown 10px solid
\ No newline at end of file diff --git a/media/sass/base.sass b/media/sass/base.sass index c3df2cf..94485f8 100644 --- a/media/sass/base.sass +++ b/media/sass/base.sass @@ -7,7 +7,9 @@ @import _maps.sass @import _about.sass @import _contact.sass - +@import _projects.sass + + body#projects h3 +headline-sans diff --git a/templates/archives/projects.html b/templates/archives/projects.html new file mode 100644 index 0000000..cdefc1f --- /dev/null +++ b/templates/archives/projects.html @@ -0,0 +1,31 @@ +{% extends 'base.html' %} +{% load typogrify %} +{% block pagetitle %}Luxagraf | Projects {% endblock %} +{% block metadescription %}Travel Themes and Experiments {% endblock %} + +{%block bodyid%}id="projects"{%endblock%} + +{% block primary %} +<article> + <ul id="breadcrumbs"> + <li><a href="/" title="luxagraf homepage">Home</a> →</li> + <li>Projects</li> + </ul> + <h1 class="hide">Projects</h1> + {%for project in object_list %} + <ul> + <li class="project-tease"> + <dl> + <dt> + <a href="{{project.get_absolute_url}}"><h4 class="proj">{{project.title|safe}}</h4> {{project.subtitle|safe}}</a> + </dt> + <dd>{{project.lede|safe}}</dd> + </dl> + <div class="img"><img src="{{project.image.url}}" /></div> + </li> + </ul> + {% endfor %} + +</article> +{% endblock %} + diff --git a/templates/details/5x5.html b/templates/details/5x5.html new file mode 100644 index 0000000..a9bdd63 --- /dev/null +++ b/templates/details/5x5.html @@ -0,0 +1,19 @@ +{% extends 'base.html' %} +{% load typogrify %} +{% block pagetitle %}Luxagraf | Projects | 5x5 - Interviews from the road {% endblock %} +{% block metadescription %}{% endblock %} + +{%block bodyid%}id="projects"{%endblock%} + +{% block primary %} +<article> + <ul id="breadcrumbs"> + <li><a href="/" title="luxagraf homepage">Home</a> →</li> + <li><a href="/projects/" title="luxagraf projects page">Projects</a> →</li> + <li>5x5</li> + </ul> + + + +</article> +{% endblock %} diff --git a/templates/projects/base.html b/templates/projects/base.html deleted file mode 100644 index 590de52..0000000 --- a/templates/projects/base.html +++ /dev/null @@ -1,20 +0,0 @@ -{% extends 'base.html' %} -{% load typogrify %} -{% block pagetitle %}Luxagraf | Projects {% endblock %} -{% block metadescription %}Travel Themes and Experiments {% endblock %} - -{%block bodyid%}id="projects"{%endblock%} - -{% block primary %} -<article> - <ul id="breadcrumbs"> - <li><a href="/" title="luxagraf homepage">Home</a> →</li> - <li>Projects</li> - </ul> - <h1 class="hide">Projects</h1> - <h3>Coming soon.</h3> - <p>Projects. Experiments in travel. Because everything is amazing.</p> - -</article> -{% endblock %} - |