diff options
author | luxagraf <sng@luxagraf.net> | 2019-09-18 21:14:38 -0400 |
---|---|---|
committer | luxagraf <sng@luxagraf.net> | 2019-09-18 21:14:38 -0400 |
commit | 5bc22c064fbc51987007d85fbc8296a998cf6e84 (patch) | |
tree | 7d961ff86c478171ffee14168e9ae3f9d09f1ca5 /app/guides | |
parent | 9e7aadbcf9bab0ecfcd4afc96f6a09f9fe11a197 (diff) |
added posts, consolidated essays into posts
Diffstat (limited to 'app/guides')
-rw-r--r-- | app/guides/__init__.py | 0 | ||||
-rw-r--r-- | app/guides/admin.py | 67 | ||||
-rw-r--r-- | app/guides/build.py | 22 | ||||
-rw-r--r-- | app/guides/guide_urls.py | 18 | ||||
-rw-r--r-- | app/guides/migrations/0001_initial.py | 60 | ||||
-rw-r--r-- | app/guides/migrations/0002_remove_guide_category.py | 17 | ||||
-rw-r--r-- | app/guides/migrations/0003_guide_category.py | 21 | ||||
-rw-r--r-- | app/guides/migrations/0004_auto_20190914_0646.py | 47 | ||||
-rw-r--r-- | app/guides/migrations/0005_remove_guide_category.py | 17 | ||||
-rw-r--r-- | app/guides/migrations/__init__.py | 0 | ||||
-rw-r--r-- | app/guides/models.py | 136 | ||||
-rw-r--r-- | app/guides/review_urls.py | 18 | ||||
-rw-r--r-- | app/guides/templates/guides/guide_detail.html | 176 | ||||
-rw-r--r-- | app/guides/templates/guides/guide_detail.txt | 8 | ||||
-rw-r--r-- | app/guides/templates/guides/guide_list.html | 40 | ||||
-rw-r--r-- | app/guides/urls.py | 34 | ||||
-rw-r--r-- | app/guides/views.py | 62 |
17 files changed, 0 insertions, 743 deletions
diff --git a/app/guides/__init__.py b/app/guides/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/app/guides/__init__.py +++ /dev/null diff --git a/app/guides/admin.py b/app/guides/admin.py deleted file mode 100644 index 7895aba..0000000 --- a/app/guides/admin.py +++ /dev/null @@ -1,67 +0,0 @@ -from django.contrib import admin -from django.contrib.gis.admin import OSMGeoAdmin - -from utils.widgets import LGEntryForm -from utils.util import get_latlon - -from .models import Guide - - -@admin.register(Guide) -class GuideAdmin(OSMGeoAdmin): - form = LGEntryForm - list_display = ('title', 'pub_date', 'enable_comments', 'status', 'post_type') - list_filter = ('pub_date', 'enable_comments', 'status') - prepopulated_fields = {"slug": ('title',)} - fieldsets = ( - ('Entry', { - 'fields': ( - 'title', - 'sub_title', - 'body_markdown', - ('pub_date', 'status', 'post_type', 'disclaimer'), - 'meta_description', - 'featured_image', - 'dek', - 'tags', - 'prologue_markdown', - 'epilogue_markdown', - 'has_video', - ('slug', 'enable_comments'), - 'point', - ), - 'classes': ( - 'show', - 'extrapretty', - 'wide' - ) - }), - ('meta', { - 'fields': ( - ('field_notes', 'books','jrnl'), - ), - 'classes': ( - 'hide', - 'extrapretty', - 'wide' - ) - }), - ) - - # options for OSM map Using custom ESRI topo map - lat, lon = get_latlon() - default_lon = lon - default_lat = lat - default_zoom = 10 - units = True - scrollable = False - map_width = 700 - map_height = 425 - map_template = 'gis/admin/osm.html' - openlayers_url = '/static/admin/js/OpenLayers.js' - - class Media: - js = ('image-loader.js', 'next-prev-links.js') - css = { - "all": ("my_styles.css",) - } diff --git a/app/guides/build.py b/app/guides/build.py deleted file mode 100644 index 392e991..0000000 --- a/app/guides/build.py +++ /dev/null @@ -1,22 +0,0 @@ -import os -from builder.base import BuildNew -from django.urls import reverse -from . import models - - -class BuildEssays(BuildNew): - - def build(self): - self.build_list_view() - self.build_detail_view() - # These are the unique classes for this model: - #self.build_feed("src:feed") - - def build_list_view(self): - response = self.client.get('/essays/') - self.write_file('essays/', response.content) - - -def essaybuilder(): - j = BuildEssays("essays", "essay") - j.build() diff --git a/app/guides/guide_urls.py b/app/guides/guide_urls.py deleted file mode 100644 index ad67061..0000000 --- a/app/guides/guide_urls.py +++ /dev/null @@ -1,18 +0,0 @@ -from django.urls import path, re_path - -from . import views - -app_name = "guide" - -urlpatterns = [ - path( - r'<str:slug>', - views.GuideDetailView.as_view(), - name="guide-detail" - ), - path( - r'<str:slug>.txt', - views.GuideDetailViewTXT.as_view(), - name="guide-detail-txt" - ), -] diff --git a/app/guides/migrations/0001_initial.py b/app/guides/migrations/0001_initial.py deleted file mode 100644 index 833dfbe..0000000 --- a/app/guides/migrations/0001_initial.py +++ /dev/null @@ -1,60 +0,0 @@ -# Generated by Django 2.1.7 on 2019-07-04 09:03 - -import django.contrib.gis.db.models.fields -from django.db import migrations, models -import django.db.models.deletion -import taggit.managers - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ('jrnl', '0043_auto_20190704_0903'), - ('books', '0009_book_afflink'), - ('photos', '0019_auto_20190704_0903'), - ('fieldnotes', '0002_auto_20190303_1222'), - ('locations', '0018_auto_20190414_2124'), - ('essays', '0010_essay_field_notes'), - ('taxonomy', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Guide', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=200)), - ('sub_title', models.CharField(blank=True, max_length=200)), - ('dek', models.TextField(blank=True)), - ('preamble_markdown', models.TextField(blank=True)), - ('preamble_html', models.TextField(blank=True)), - ('slug', models.SlugField(unique_for_date='pub_date')), - ('body_html', models.TextField(blank=True)), - ('body_markdown', models.TextField()), - ('pub_date', models.DateTimeField(verbose_name='Date published')), - ('last_updated', models.DateTimeField(auto_now=True)), - ('enable_comments', models.BooleanField(default=False)), - ('status', models.IntegerField(choices=[(0, 'Draft'), (1, 'Published')], default=0)), - ('meta_description', models.CharField(blank=True, max_length=256, null=True)), - ('has_video', models.BooleanField(blank=True, default=False)), - ('point', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326)), - ('afterword', models.TextField(blank=True)), - ('afterword_html', models.TextField(blank=True)), - ('books', models.ManyToManyField(blank=True, to='books.Book')), - ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='taxonomy.Category')), - ('essays', models.ManyToManyField(blank=True, to='essays.Essay')), - ('featured_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='photos.LuxImage')), - ('field_notes', models.ManyToManyField(blank=True, to='fieldnotes.FieldNote')), - ('jrnl', models.ManyToManyField(blank=True, to='jrnl.Entry')), - ('location', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='locations.Location')), - ('tags', taggit.managers.TaggableManager(blank=True, help_text='Topics Covered', through='taxonomy.TaggedItems', to='taxonomy.LuxTag', verbose_name='Tags')), - ], - options={ - 'verbose_name_plural': 'Guides', - 'ordering': ('-pub_date',), - 'get_latest_by': 'pub_date', - }, - ), - ] diff --git a/app/guides/migrations/0002_remove_guide_category.py b/app/guides/migrations/0002_remove_guide_category.py deleted file mode 100644 index 76eefa6..0000000 --- a/app/guides/migrations/0002_remove_guide_category.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 2.1.7 on 2019-07-04 12:05 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('guides', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='guide', - name='category', - ), - ] diff --git a/app/guides/migrations/0003_guide_category.py b/app/guides/migrations/0003_guide_category.py deleted file mode 100644 index 82d03ac..0000000 --- a/app/guides/migrations/0003_guide_category.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 2.1.7 on 2019-09-08 17:45 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('taxonomy', '0001_initial'), - ('guides', '0002_remove_guide_category'), - ] - - operations = [ - migrations.AddField( - model_name='guide', - name='category', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='taxonomy.Category'), - preserve_default=False, - ), - ] diff --git a/app/guides/migrations/0004_auto_20190914_0646.py b/app/guides/migrations/0004_auto_20190914_0646.py deleted file mode 100644 index ccd79a5..0000000 --- a/app/guides/migrations/0004_auto_20190914_0646.py +++ /dev/null @@ -1,47 +0,0 @@ -# Generated by Django 2.1.7 on 2019-09-14 06:46 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('guides', '0003_guide_category'), - ] - - operations = [ - migrations.RenameField( - model_name='guide', - old_name='afterword', - new_name='epilogue_html', - ), - migrations.RenameField( - model_name='guide', - old_name='afterword_html', - new_name='epilogue_markdown', - ), - migrations.RenameField( - model_name='guide', - old_name='preamble_html', - new_name='prologue_html', - ), - migrations.RenameField( - model_name='guide', - old_name='preamble_markdown', - new_name='prologue_markdown', - ), - migrations.RemoveField( - model_name='guide', - name='essays', - ), - migrations.AddField( - model_name='guide', - name='disclaimer', - field=models.BooleanField(blank=True, default=False), - ), - migrations.AddField( - model_name='guide', - name='post_type', - field=models.IntegerField(choices=[(0, 'guide'), (1, 'review')], default=0), - ), - ] diff --git a/app/guides/migrations/0005_remove_guide_category.py b/app/guides/migrations/0005_remove_guide_category.py deleted file mode 100644 index 71d0280..0000000 --- a/app/guides/migrations/0005_remove_guide_category.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 2.1.7 on 2019-09-14 07:08 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('guides', '0004_auto_20190914_0646'), - ] - - operations = [ - migrations.RemoveField( - model_name='guide', - name='category', - ), - ] diff --git a/app/guides/migrations/__init__.py b/app/guides/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/app/guides/migrations/__init__.py +++ /dev/null diff --git a/app/guides/models.py b/app/guides/models.py deleted file mode 100644 index 8704887..0000000 --- a/app/guides/models.py +++ /dev/null @@ -1,136 +0,0 @@ -from django.contrib.gis.db import models -from django.urls import reverse -from django.contrib.sitemaps import Sitemap -import datetime -from itertools import chain - -from taggit.managers import TaggableManager - -from taxonomy.models import TaggedItems, Category -from utils.util import render_images, markdown_to_html -from fieldnotes.models import FieldNote -from books.models import Book -from locations.models import Location -from photos.models import LuxImage -from essays.models import Essay -from jrnl.models import Entry - - -class Guide(models.Model): - title = models.CharField(max_length=200) - sub_title = models.CharField(max_length=200, blank=True) - dek = models.TextField(blank=True) - prologue_markdown = models.TextField(blank=True) - prologue_html = models.TextField(blank=True) - body_markdown = models.TextField() - body_html = models.TextField(blank=True) - epilogue_markdown = models.TextField(blank=True) - epilogue_html = models.TextField(blank=True) - slug = models.SlugField(unique_for_date='pub_date') - pub_date = models.DateTimeField('Date published') - last_updated = models.DateTimeField(auto_now=True) - enable_comments = models.BooleanField(default=False) - PUB_STATUS = ( - (0, 'Draft'), - (1, 'Published'), - ) - status = models.IntegerField(choices=PUB_STATUS, default=0) - POST_TYPE = ( - (0, 'guide'), - (1, 'review'), - ) - post_type = models.IntegerField(choices=POST_TYPE, default=0) - meta_description = models.CharField(max_length=256, null=True, blank=True) - tags = TaggableManager(through=TaggedItems, blank=True, help_text='Topics Covered') - featured_image = models.ForeignKey(LuxImage, on_delete=models.CASCADE, null=True, blank=True) - point = models.PointField(null=True, blank=True) - location = models.ForeignKey(Location, on_delete=models.CASCADE, null=True, blank=True) - has_video = models.BooleanField(blank=True, default=False) - disclaimer = models.BooleanField(blank=True, default=False) - field_notes = models.ManyToManyField(FieldNote, blank=True) - books = models.ManyToManyField(Book, blank=True) - jrnl = models.ManyToManyField(Entry, blank=True) - - class Meta: - ordering = ('-pub_date',) - get_latest_by = 'pub_date' - verbose_name_plural = 'Guides' - - def __str__(self): - return self.title - - def get_absolute_url(self): - if self.post_type == 0: - return reverse('guide:guide-detail', kwargs={"slug": self.slug}) - if self.post_type == 1: - return reverse('review:review-detail', kwargs={"slug": self.slug}) - - def comment_period_open(self): - return self.enable_comments and datetime.datetime.today() - datetime.timedelta(30) <= self.pub_date - - @property - def get_previous_published(self): - return self.get_previous_by_pub_date(status__exact=1) - - @property - def get_previous_admin_url(self): - n = self.get_previous_by_pub_date() - return reverse('admin:%s_%s_change' %(self._meta.app_label, self._meta.model_name), args=[n.id] ) - - @property - def get_next_published(self): - return self.get_next_by_pub_date(status__exact=1) - - @property - def get_next_admin_url(self): - model = apps.get_model(app_label=self._meta.app_label, model_name=self._meta.model_name) - try: - return reverse('admin:%s_%s_change' %(self._meta.app_label, self._meta.model_name), args=[self.get_next_by_pub_date().pk] ) - except model.DoesNotExist: - return '' - - @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 - - def save(self, *args, **kwargs): - created = self.pk is None - if not created: - md = render_images(self.body_markdown) - self.body_html = markdown_to_html(md) - self.prologue_html = markdown_to_html(self.prologue_markdown) - self.epilogue_html = markdown_to_html(self.epilogue_markdown) - self.has_video = parse_video(self.body_html) - if self.point: - try: - self.location = Location.objects.filter(geometry__contains=self.point).get() - except Location.DoesNotExist: - raise forms.ValidationError("There is no location associated with that point, add it: %sadmin/locations/location/add/" % (settings.BASE_URL)) - if created and not self.featured_image: - self.featured_image = LuxImage.objects.latest() - old = type(self).objects.get(pk=self.pk) if self.pk else None - if old and old.featured_image != self.featured_image: # Field has changed - s = LuxImageSize.objects.get(name="featured_jrnl") - ss = LuxImageSize.objects.get(name="picwide-med") - self.featured_image.sizes.add(s) - self.featured_image.sizes.add(ss) - self.featured_image.save() - super(Guide, self).save(*args, **kwargs) - - -class GuideSitemap(Sitemap): - changefreq = "never" - priority = 1.0 - protocol = "https" - - def items(self): - return Guide.objects.filter(status=1) - - def lastmod(self, obj): - return obj.pub_date diff --git a/app/guides/review_urls.py b/app/guides/review_urls.py deleted file mode 100644 index 7048065..0000000 --- a/app/guides/review_urls.py +++ /dev/null @@ -1,18 +0,0 @@ -from django.urls import path, re_path - -from . import views - -app_name = "review" - -urlpatterns = [ - path( - r'<str:slug>', - views.GuideDetailView.as_view(), - name="review-detail" - ), - path( - r'<str:slug>.txt', - views.GuideDetailViewTXT.as_view(), - name="review-detail-txt" - ), -] diff --git a/app/guides/templates/guides/guide_detail.html b/app/guides/templates/guides/guide_detail.html deleted file mode 100644 index 1ef602a..0000000 --- a/app/guides/templates/guides/guide_detail.html +++ /dev/null @@ -1,176 +0,0 @@ -{% extends 'base.html' %} -{% load typogrify_tags %} -{% load comments %} -{%block htmlclass%}class="detail single"{%endblock%} -{% block pagetitle %}{{object.title|title|smartypants|safe}} - by Scott Gilbertson{% endblock %} - -{% block metadescription %}{% autoescape on %}{{object.meta_description|striptags|safe}}{% endautoescape %}{% endblock %} -{%block extrahead%} -{% if object.has_code %} - <link rel="stylesheet" href="/media/src/solarized.css" type="text/css" media="screen"/> -{%endif %} - <link rel="canonical" href="https://luxagraf.net{{object.get_absolute_url}}" /> - <meta property="og:type" content="article" /> - <meta property="og:title" content="{{object.title|safe}}" /> - <meta property="og:url" content="https://luxagraf.net{{object.get_absolute_url}}" /> - <meta property="og:description" content="{% if object.meta_description %}{{object.meta_description}}{%else%}{{object.sub_title}}{%endif%}" /> - <meta property="article:published_time" content="{{object.pub_date|date:'c'}}" /> - <meta property="article:author" content="Scott Gilbertson" /> - <meta property="og:site_name" content="Luxagraf" /> - <meta property="og:image" content="{{self.get_featured_image}}" /> - <meta property="og:locale" content="en_US" /> - <meta name="twitter:card" content="summary_large_image"/> - <meta name="twitter:description" content="{% if object.meta_description %}{{object.meta_description}}{%else%}{{object.sub_title}}{%endif%}"/> - <meta name="twitter:title" content="{{object.title|safe}}"/> - <meta name="twitter:site" content="@luxagraf"/> - <meta name="twitter:domain" content="luxagraf"/>{% if object.featured_image %} - <meta name="twitter:image:src" content="{{object.featured_image.get_image_url}}"/>{%endif%} - <meta name="twitter:creator" content="@luxagraf"/> -{%endblock%} - -{%block bodyid %}{% if object.get_post_type_display == 'tools' %}class="src"{% endif %}{%endblock%} - -{% block primary %} - <main> - <article class="h-entry hentry {% with object.get_template_name_display as t %}{%if t == "double" or t == "double-dark" %} post--article--double{%endif%}{%endwith%}" itemscope itemType="http://schema.org/Article"> - <header id="header" class="post-header {% with object.get_template_name_display as t %}{%if t == "double" or t == "double-dark" %}post--header--double{%endif%}{%endwith%}"> - <h1 class="p-name entry-title post-title" itemprop="headline">{%if object.template_name == 1 or object.template_name == 3 %}{{object.title|smartypants|safe}}{%else%}{{object.title|smartypants|safe}}{%endif%}</h1> - <h2 class="post-subtitle">{{object.sub_title|smartypants|safe}}</h2> - <div class="post-linewrapper"> - {% if object.originally_published_by %}<h4 class="post-source">Originally Published By: <a href="{{object.originally_published_by_url}}" title="View {{object.title}} on {{object.originally_published_by}}">{{object.originally_published_by}}</a></h4>{%endif%} - {% if object.location %}<div class="p-location h-adr adr post-location" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place"> - <h3 class="h-adr" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">{% if object.location.country_name == "United States" %}<span class="p-locality locality" itemprop="addressLocality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/jrnl/united-states/" title="travel writing from the United States">{{object.location.state_name|safe}}</a>, <span class="p-country-name" itemprop="addressCountry">U.S.</span>{%else%}<span class="p-region" itemprop="addressRegion">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.location.country_slug}}/" title="travel writing from {{object.location.country_name}}"><span itemprop="addressCountry">{{object.location.country_name|safe}}</span></a>{%endif%}</h3> - – <a href="" onclick="showMap({{object.latitude}}, {{object.longitude}}, { type:'point', lat:'{{object.latitude}}', lon:'{{object.longitude}}'}); return false;" title="see a map">Map</a> - </div>{%endif%} - <time class="dt-published published dt-updated post-date" datetime="{{object.pub_date|date:'c'}}" itemprop="datePublished">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> - <span class="hide" itemprop="author" itemscope itemtype="http://schema.org/Person">by <a class="p-author h-card" href="/about"><span itemprop="name">Scott Gilbertson</span></a></span> - </div> - </header> - <div id="article" class="e-content entry-content post--body post--body--{% with object.template_name as t %}{%if t == 0 or t == 2 %}single{%endif%}{%if t == 1 or t == 3 %}double{%endif%}{%endwith%} post-essay" itemprop="articleBody"> - {% if object.preamble %}<div class="afterward"> - {{object.preamble_html|smartypants|safe}} - </div>{%endif%} - {{object.body_html|safe|smartypants}} - </div> - {% if object.afterword_html %}<div class="afterward"> - <h4>Afterward</h4> - {{object.afterword_html|smartypants|safe}} - </div>{%endif%} - {%if wildlife or object.field_notes.all or object.books.all %}<div class="entry-footer">{%if wildlife %} - <aside id="wildlife"> - <h3>Fauna and Flora</h3> - {% regroup wildlife by ap.apclass.get_kind_display as wildlife_list %} - <ul> - {% for object_list in wildlife_list %} - <li class="grouper">{{object_list.grouper}}<ul> - {% for object in object_list.list %} - <li>{%if object.ap.body_markdown%}<a href="{% url 'sightings:detail' object.ap.slug %}">{{object}}</a>{%else%}{{object}}{%endif%} </li> - {% endfor %}</ul> - {% endfor %}</ul> - </aside> - {% endif %}{%if object.field_notes.all %} - <aside {% if wildlife %}class="margin-left-none" {%endif%}id="field_notes"> - <h3>Field Notes</h3> - <ul>{% for obj in object.field_notes.all %} - <li><a href="{% url 'fieldnotes:detail' year=obj.pub_date.year month=obj.pub_date|date:"m" slug=obj.slug %}">{{obj}}</a></li> - {% endfor %}</ul> - </aside>{% endif %} - {%if object.books.all %} - <aside id="recommended-reading" {%if object.field_notes.all and wildlife %}class="rr-clear{%endif%}" > - <h3>Recommended Reading</h3> - <ul>{% for obj in object.books.all %} - <li><a href="{% url 'books:detail' slug=obj.slug %}"><img src="{{obj.get_small_image_url}}" /></a></li> - {% endfor %}</ul> - </aside>{% endif %} - </div>{%endif%} - </article> - - {% comment %} <div class="mailing-list--wrapper"> - <h5>If you enjoyed this, you should join the mailing list…</h5> - {% include 'mailing_list.html' %} - </div> {% endcomment %} - </main> - {% if object.enable_comments %} -{% get_comment_count for object as comment_count %} -{%if comment_count > 0 %} -<p class="comments--header">{{comment_count}} Comment{{ comment_count|pluralize }}</p> -{% render_comment_list for object %} -{%endif%} -{% render_comment_form for object %} -{% else %} -<p class="comments--header" style="text-align: center">Sorry, comments have been disabled for this post.</p> -{%endif%} -{% endblock %} -{% block js %} -<script type="text/javascript"> -document.addEventListener("DOMContentLoaded", function(event) { - var leaflet = document.createElement('script'); - leaflet.src = "/media/js/leaflet-master/leaflet-mod.js"; - document.body.appendChild(leaflet); - var lightbox = document.createElement('script'); - lightbox.src = "/media/js/lightbox.js"; - document.body.appendChild(lightbox); - leaflet.onload = function(){ - var detail = document.createElement('script'); - detail.src = "/media/js/detail.min.js"; - document.body.appendChild(detail); - {% with object.get_template_name_display as t %}{%if t == "single" or t == "single-dark" %} - detail.onload = function(){ - createMap(); - var open = false; - } - {%endif%}{%endwith%} - } - - lightbox.onload = function() { - var opts= { - //nextOnClick: false, - captions: true, - onload: function(){ - var im = document.getElementById("jslghtbx-contentwrapper"); - var link = im.appendChild(document.createElement('a')) - link.href = im.firstChild.src; - link.innerHTML= "open "; - link.target = "_blank"; - link.setAttribute('class', 'p-link'); - im.appendChild(link); - } - }; - var lightbox = new Lightbox(); - lightbox.load(opts); - } - {% if object.enable_comments %} -{% get_comment_count for object as comment_count %} -{%if comment_count > 0 %} - //delay loading of gravatar images using noscript data-hash attribute - dataattr = document.getElementsByClassName("datahashloader"); - for(var i=0; i<dataattr.length; i++) { - var c = dataattr[i].parentNode; - var img = document.createElement("img"); - img.src = 'https://images.luxagraf.net/gravcache/' + dataattr[i].getAttribute('data-hash') + '.jpg'; - img.className += "gravatar"; - c.insertBefore(img, c.childNodes[3]); - } -{%endif%} -{%endif%} -{% if object.has_video %} -var tester = document.getElementsByClassName("vidauto"); -var wrapper = document.getElementById('wrapper'); -var dist = 100; - -window.onscroll = function() { - for (var i=0; i<tester.length; i++) { - checkVisible(tester[i]) ? tester[i].play() : tester[i].pause(); - } -}; - -function checkVisible(elm) { - var rect = elm.getBoundingClientRect(); - var viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight); - return !(rect.bottom < 0 || rect.top - viewHeight >= 0); -} -{%endif%} - -}); -</script> -{%endblock%} diff --git a/app/guides/templates/guides/guide_detail.txt b/app/guides/templates/guides/guide_detail.txt deleted file mode 100644 index 547ce79..0000000 --- a/app/guides/templates/guides/guide_detail.txt +++ /dev/null @@ -1,8 +0,0 @@ -{{object.title|safe}} -{% for letter in object.title %}={%endfor%} - - by Scott Gilbertson - <{{SITE_URL}}{{object.get_absolute_url}}> - {{object.pub_date|date:"l, d F Y"}} - -{{object.body_markdown|safe}} diff --git a/app/guides/templates/guides/guide_list.html b/app/guides/templates/guides/guide_list.html deleted file mode 100644 index a264a11..0000000 --- a/app/guides/templates/guides/guide_list.html +++ /dev/null @@ -1,40 +0,0 @@ -{% extends 'base.html' %} -{% load typogrify_tags %} -{% load html5_datetime %} -{% load pagination_tags %} -{% block pagetitle %}Guides for the Perplexed{% endblock %} -{% block metadescription %}Guides for fellow travelers: tools, tips, and tricks to make life on the road easier.{% endblock %} - -{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> - <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> - <li>Essays</li> - </ul> - <main role="main" id="essay-archive" class="essay-archive archive-list"> - <div class="essay-intro"> - <h2>Guides for fellow travelers</h2> - <p>The less stuff you travel with the better off you will be, up to a point. But where is that point? What's enough? What's too much? That point is what I'm trying to discover here. </p> - <p>What do you really need? What's worth having? What's not?</p> - <p>Topics include {% for topic in topic_list %}{{topic}}, {% endfor %}travel, cooking, photography, writing, simplicity, and once, coffee.</p> - </div> - <h1 class="topic-hed">Guides</h1> - {% autopaginate object_list 30 %} - <ul class="fancy-archive-list">{% for object in object_list %} - <li class="h-entry hentry" itemscope itemType="http://schema.org/Article"> - <a href="{{object.get_absolute_url}}" class="u-url"> - <div class="circle-img-wrapper"><img src="{{object.featured_image.get_thumbnail_url}}" alt="{{object.featured_image.alt}}" class="u-photo" /></div> - <span class="date dt-published">{{object.pub_date|date:"F d, Y"}}</span> - <a href="{{object.get_absolute_url}}"> - <h2>{{object.title|safe|smartypants|widont}}</h2> - {% if object.subtitle %}<h3 class="p-summary">{{object.subtitle|safe|smartypants|widont}}</h3>{%endif%} - </a> - {% if object.location %}<h4 class="p-location h-adr post-location" itemprop="geo" itemscope itemtype="http://data-vocabulary.org/Geo"> - <span class="p-locality">{{object.location.name|smartypants|safe}}</span>, - <span class="p-region">{{object.location.state_name}}</span>, - <span class="p-country-name">{{object.location.country_name}}</span> - <data class="p-latitude" value="{{object.latitude}}"></data> - <data class="p-longitude" value="{{object.longitude}}"></data> - </h4>{% endif %} - </li> - {%endfor%}</ul> - </main> -{%endblock%} diff --git a/app/guides/urls.py b/app/guides/urls.py deleted file mode 100644 index c91a5b5..0000000 --- a/app/guides/urls.py +++ /dev/null @@ -1,34 +0,0 @@ -from django.urls import path, re_path - -from . import views - -app_name = "guides" - -urlpatterns = [ - path( - r'', - views.GuideListView.as_view(), - {'page': 1}, - name="list" - ), - path( - r'<int:page>/', - views.GuideListView.as_view(), - name="list" - ), - path( - r'<str:category>/<str:slug>', - views.GuideDetailView.as_view(), - name="detail" - ), - path( - r'<str:category>/<str:slug>', - views.GuideDetailViewTXT.as_view(), - name="detail-txt" - ), - path( - r'<str:category>', - views.GuideCatListView.as_view(), - name="list-cat" - ), -] diff --git a/app/guides/views.py b/app/guides/views.py deleted file mode 100644 index 01dc974..0000000 --- a/app/guides/views.py +++ /dev/null @@ -1,62 +0,0 @@ -from django.views.generic import ListView -from django.views.generic.detail import DetailView -from django.contrib.syndication.views import Feed - -from utils.views import PaginatedListView - -from .models import Guide - - -class GuideListView(PaginatedListView): - model = Guide - - def get_queryset(self, **kwargs): - qs = Guide.objects.filter(status=1) - return qs - - def get_context_data(self, **kwargs): - # Call the base implementation first to get a context - context = super(GuideListView, self).get_context_data(**kwargs) - context['topic_list'] = Guide.tags.all() - return context - - -class GuideCatListView(GuideListView): - model = Guide - - def get_queryset(self, **kwargs): - cat = Category.objects.get(slug=self.kwargs['slug']) - qs = Guide.objects.filter(status=1, tags=cat) - return qs - -class GuideDetailView(DetailView): - model = Guide - - -class GuideDetailViewTXT(GuideDetailView): - template_name = "essays/entry_detail.txt" - - -''' -class TopicListView(ListView): - template_name = 'archives/src_home.html' - - def queryset(self): - return Post.objects.filter(topics__slug=self.kwargs['slug']) - - def get_context_data(self, **kwargs): - # Call the base implementation first to get a context - context = super(TopicListView, self).get_context_data(**kwargs) - context['topic'] = Topic.objects.get(slug__exact=self.kwargs['slug']) - return context - - -class SrcRSSFeedView(Feed): - title = "luxagraf:src Code and Technology" - link = "/src/" - description = "Latest postings to luxagraf.net/src" - description_template = 'feeds/blog_description.html' - - def items(self): - return Post.objects.filter(status__exact=1).order_by('-pub_date')[:10] -''' |