Wagtail integration (#17)
* Adds basic wagtail app to the website * Renames lca_website to cms_pages for clarity; re-instates pinax-boxes until we remove them from the templates * OOPS * Just Enough Wagtail * Removes the template view homepage from urls.py * OOPS * Makes the home page use a stream field * Removes an irrelevant migration that I accidentally introduced.
This commit is contained in:
		
							parent
							
								
									4c458fd584
								
							
						
					
					
						commit
						fdfe3c7045
					
				
					 17 changed files with 387 additions and 9 deletions
				
			
		
							
								
								
									
										0
									
								
								cms_pages/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cms_pages/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										3
									
								
								cms_pages/admin.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								cms_pages/admin.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | ||||||
|  | from django.contrib import admin | ||||||
|  | 
 | ||||||
|  | # Register your models here. | ||||||
							
								
								
									
										7
									
								
								cms_pages/apps.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								cms_pages/apps.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.apps import AppConfig | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class CmsPagesConfig(AppConfig): | ||||||
|  |     name = 'cms_pages' | ||||||
							
								
								
									
										70
									
								
								cms_pages/migrations/0001_initial.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								cms_pages/migrations/0001_initial.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,70 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.7 on 2016-06-21 08:02 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | import wagtail.wagtailcore.fields | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     initial = True | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('wagtailcore', '0028_merge'), | ||||||
|  |         ('wagtailimages', '0013_make_rendition_upload_callable'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='ContentPage', | ||||||
|  |             fields=[ | ||||||
|  |                 ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), | ||||||
|  |                 ('intro', models.CharField(max_length=250)), | ||||||
|  |                 ('body', wagtail.wagtailcore.fields.RichTextField(blank=True)), | ||||||
|  |                 ('image_display', models.IntegerField(choices=[(1, 'Banner with background feature image'), (2, 'No banner, circular vignette')])), | ||||||
|  |                 ('main_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('wagtailcore.page',), | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='HomePage', | ||||||
|  |             fields=[ | ||||||
|  |                 ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), | ||||||
|  |                 ('body', wagtail.wagtailcore.fields.RichTextField(blank=True)), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('wagtailcore.page',), | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='NewsIndexPage', | ||||||
|  |             fields=[ | ||||||
|  |                 ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), | ||||||
|  |                 ('intro', wagtail.wagtailcore.fields.RichTextField(blank=True)), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('wagtailcore.page',), | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='NewsPage', | ||||||
|  |             fields=[ | ||||||
|  |                 ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), | ||||||
|  |                 ('intro', models.CharField(max_length=250)), | ||||||
|  |                 ('body', wagtail.wagtailcore.fields.RichTextField(blank=True)), | ||||||
|  |                 ('date', models.DateField(verbose_name='Post date')), | ||||||
|  |                 ('main_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'abstract': False, | ||||||
|  |             }, | ||||||
|  |             bases=('wagtailcore.page',), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										23
									
								
								cms_pages/migrations/0002_auto_20160621_0936.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								cms_pages/migrations/0002_auto_20160621_0936.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Generated by Django 1.9.7 on 2016-06-21 09:36 | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | import wagtail.wagtailcore.blocks | ||||||
|  | import wagtail.wagtailcore.fields | ||||||
|  | import wagtail.wagtailimages.blocks | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('cms_pages', '0001_initial'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name='homepage', | ||||||
|  |             name='body', | ||||||
|  |             field=wagtail.wagtailcore.fields.StreamField([('basic_content', wagtail.wagtailcore.blocks.StructBlock([('type', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[(1, 'Left-aligned image, blue-filtered image BG'), (2, 'Right-aligned image, white background')])), ('heading', wagtail.wagtailcore.blocks.CharBlock(required=True)), ('inset_image', wagtail.wagtailimages.blocks.ImageChooserBlock()), ('background_image', wagtail.wagtailimages.blocks.ImageChooserBlock(help_text="This is used as the background image of a blue-left block. It's not used for white-right.", required=False)), ('body', wagtail.wagtailcore.blocks.RichTextBlock(required=True)), ('link', wagtail.wagtailcore.blocks.StructBlock([('page', wagtail.wagtailcore.blocks.PageChooserBlock()), ('title', wagtail.wagtailcore.blocks.CharBlock(required=True))]))]))]), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
							
								
								
									
										0
									
								
								cms_pages/migrations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cms_pages/migrations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										134
									
								
								cms_pages/models.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								cms_pages/models.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,134 @@ | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import models | ||||||
|  | 
 | ||||||
|  | from modelcluster.fields import ParentalKey | ||||||
|  | 
 | ||||||
|  | from wagtail.wagtailcore import blocks | ||||||
|  | from wagtail.wagtailimages import blocks as imageblocks | ||||||
|  | from wagtail.wagtailcore.models import Page | ||||||
|  | from wagtail.wagtailcore.models import Orderable | ||||||
|  | from wagtail.wagtailcore.fields import RichTextField | ||||||
|  | from wagtail.wagtailcore.fields import StreamField | ||||||
|  | from wagtail.wagtailimages.edit_handlers import ImageChooserPanel | ||||||
|  | from wagtail.wagtailadmin.edit_handlers import InlinePanel | ||||||
|  | from wagtail.wagtailadmin.edit_handlers import FieldPanel | ||||||
|  | from wagtail.wagtailadmin.edit_handlers import PageChooserPanel | ||||||
|  | from wagtail.wagtailadmin.edit_handlers import StreamFieldPanel | ||||||
|  | from wagtail.wagtailsearch import index | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class HomePage(Page): | ||||||
|  | 
 | ||||||
|  |     BASIC_CONTENT_BLUE_LEFT = 1 | ||||||
|  |     BASIC_CONTENT_WHITE_RIGHT = 2 | ||||||
|  |     BASIC_CONTENT_TYPES = ( | ||||||
|  |         (BASIC_CONTENT_BLUE_LEFT, "Left-aligned image, blue-filtered image BG"), | ||||||
|  |         (BASIC_CONTENT_WHITE_RIGHT, "Right-aligned image, white background"), | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     body = StreamField([ | ||||||
|  |         ("basic_content", blocks.StructBlock([ | ||||||
|  |             ("type", blocks.ChoiceBlock( | ||||||
|  |                 choices=BASIC_CONTENT_TYPES, | ||||||
|  |                 required=True, | ||||||
|  |             )), | ||||||
|  |             ("heading", blocks.CharBlock(required=True)), | ||||||
|  |             ("inset_image", imageblocks.ImageChooserBlock()), | ||||||
|  |             ("background_image", imageblocks.ImageChooserBlock( | ||||||
|  |                 required=False, | ||||||
|  |                 help_text="This is used as the background image of a " | ||||||
|  |                           "blue-left block. It's not used for white-right." | ||||||
|  |             )), | ||||||
|  |             ("body", blocks.RichTextBlock(required=True)), | ||||||
|  |             ("link", blocks.StructBlock([ | ||||||
|  |                 ("page", blocks.PageChooserBlock()), | ||||||
|  |                 ("title", blocks.CharBlock(required=True)), | ||||||
|  |             ])), | ||||||
|  |         ])), | ||||||
|  |         # TODO: keynotes | ||||||
|  |         # TODO: other bits | ||||||
|  |     ]) | ||||||
|  | 
 | ||||||
|  |     content_panels = Page.content_panels + [ | ||||||
|  |         StreamFieldPanel('body') | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Content pages | ||||||
|  | class AbstractContentPage(Page): | ||||||
|  | 
 | ||||||
|  |     class Meta: | ||||||
|  |         abstract = True | ||||||
|  | 
 | ||||||
|  |     intro = models.CharField(max_length=250) | ||||||
|  |     body = RichTextField(blank=True) | ||||||
|  |     main_image = models.ForeignKey( | ||||||
|  |         'wagtailimages.Image', | ||||||
|  |         null=True, | ||||||
|  |         blank=True, | ||||||
|  |         on_delete=models.SET_NULL, | ||||||
|  |         related_name='+' | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     search_fields = Page.search_fields + [ | ||||||
|  |         index.SearchField('intro'), | ||||||
|  |         index.SearchField('body'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     content_panels = Page.content_panels + [ | ||||||
|  |         ImageChooserPanel('main_image'), | ||||||
|  |         FieldPanel('intro'), | ||||||
|  |         FieldPanel('body', classname="full") | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class ContentPage(AbstractContentPage): | ||||||
|  | 
 | ||||||
|  |     IMAGE_DISPLAY_FEATURE = 1 | ||||||
|  |     IMAGE_DISPLAY_VIGNETTE = 2 | ||||||
|  | 
 | ||||||
|  |     IMAGE_DISPLAY = ( | ||||||
|  |         (IMAGE_DISPLAY_FEATURE, "Banner with background feature image"), | ||||||
|  |         (IMAGE_DISPLAY_VIGNETTE, "No banner, circular vignette"), | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     image_display = models.IntegerField( | ||||||
|  |         choices=IMAGE_DISPLAY, | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     def image_display_feature(self): | ||||||
|  |         return self.image_display == IMAGE_DISPLAY_FEATURE | ||||||
|  | 
 | ||||||
|  |     def image_display_vignette(self): | ||||||
|  |         return self.image_display == IMAGE_DISPLAY_VIGNETTE | ||||||
|  | 
 | ||||||
|  |     content_panels = [ | ||||||
|  |         FieldPanel('image_display') | ||||||
|  |     ] + AbstractContentPage.content_panels | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # News pages | ||||||
|  | 
 | ||||||
|  | class NewsIndexPage(Page): | ||||||
|  |     intro = RichTextField(blank=True) | ||||||
|  | 
 | ||||||
|  |     subpage_types = [ | ||||||
|  |         "NewsPage", | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     content_panels = Page.content_panels + [ | ||||||
|  |         FieldPanel('intro', classname="full"), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class NewsPage(AbstractContentPage): | ||||||
|  |     date = models.DateField("Post date") | ||||||
|  | 
 | ||||||
|  |     parent_page_types = [ | ||||||
|  |         NewsIndexPage, | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     content_panels = AbstractContentPage.content_panels + [ | ||||||
|  |         FieldPanel('date'), | ||||||
|  |     ] | ||||||
							
								
								
									
										3
									
								
								cms_pages/tests.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								cms_pages/tests.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | ||||||
|  | from django.test import TestCase | ||||||
|  | 
 | ||||||
|  | # Create your tests here. | ||||||
							
								
								
									
										3
									
								
								cms_pages/views.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								cms_pages/views.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | ||||||
|  | from django.shortcuts import render | ||||||
|  | 
 | ||||||
|  | # Create your views here. | ||||||
|  | @ -112,6 +112,8 @@ MIDDLEWARE_CLASSES = [ | ||||||
|     "django.contrib.messages.middleware.MessageMiddleware", |     "django.contrib.messages.middleware.MessageMiddleware", | ||||||
|     "reversion.middleware.RevisionMiddleware", |     "reversion.middleware.RevisionMiddleware", | ||||||
|     "django.middleware.clickjacking.XFrameOptionsMiddleware", |     "django.middleware.clickjacking.XFrameOptionsMiddleware", | ||||||
|  |     'wagtail.wagtailcore.middleware.SiteMiddleware', | ||||||
|  |     'wagtail.wagtailredirects.middleware.RedirectMiddleware', | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| ROOT_URLCONF = "pinaxcon.urls" | ROOT_URLCONF = "pinaxcon.urls" | ||||||
|  | @ -139,9 +141,23 @@ INSTALLED_APPS = [ | ||||||
|     "reversion", |     "reversion", | ||||||
|     "metron", |     "metron", | ||||||
|     "sitetree", |     "sitetree", | ||||||
|     "pinax.boxes", |  | ||||||
|     "pinax.eventlog", |     "pinax.eventlog", | ||||||
|     "pinax.pages", | 
 | ||||||
|  |     # wagtail | ||||||
|  |     'wagtail.wagtailforms', | ||||||
|  |     'wagtail.wagtailredirects', | ||||||
|  |     'wagtail.wagtailembeds', | ||||||
|  |     'wagtail.wagtailsites', | ||||||
|  |     'wagtail.wagtailusers', | ||||||
|  |     'wagtail.wagtailsnippets', | ||||||
|  |     'wagtail.wagtaildocs', | ||||||
|  |     'wagtail.wagtailimages', | ||||||
|  |     'wagtail.wagtailsearch', | ||||||
|  |     'wagtail.wagtailadmin', | ||||||
|  |     'wagtail.wagtailcore', | ||||||
|  | 
 | ||||||
|  |     'modelcluster', | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     # symposion |     # symposion | ||||||
|     "symposion", |     "symposion", | ||||||
|  | @ -152,6 +168,7 @@ INSTALLED_APPS = [ | ||||||
|     "symposion.speakers", |     "symposion.speakers", | ||||||
|     "symposion.sponsorship", |     "symposion.sponsorship", | ||||||
|     "symposion.teams", |     "symposion.teams", | ||||||
|  |     "pinax.boxes", | ||||||
| 
 | 
 | ||||||
|     # Registrasion |     # Registrasion | ||||||
|     #"registrasion", |     #"registrasion", | ||||||
|  | @ -160,6 +177,7 @@ INSTALLED_APPS = [ | ||||||
|     #"nested_admin", |     #"nested_admin", | ||||||
| 
 | 
 | ||||||
|     # project |     # project | ||||||
|  |     "cms_pages", | ||||||
|     "pinaxcon", |     "pinaxcon", | ||||||
|     "pinaxcon.proposals", |     "pinaxcon.proposals", | ||||||
|     #"pinaxcon.registrasion", |     #"pinaxcon.registrasion", | ||||||
|  | @ -222,8 +240,13 @@ PROPOSAL_FORMS = { | ||||||
|     "tutorial": "pinaxcon.proposals.forms.TutorialProposalForm", |     "tutorial": "pinaxcon.proposals.forms.TutorialProposalForm", | ||||||
|     "miniconf": "pinaxcon.proposals.forms.MiniconfProposalForm", |     "miniconf": "pinaxcon.proposals.forms.MiniconfProposalForm", | ||||||
| } | } | ||||||
| PINAX_PAGES_HOOKSET = "pinaxcon.hooks.PinaxPagesHookSet" | #PINAX_PAGES_HOOKSET = "pinaxcon.hooks.PinaxPagesHookSet" | ||||||
| PINAX_BOXES_HOOKSET = "pinaxcon.hooks.PinaxBoxesHookSet" | #PINAX_BOXES_HOOKSET = "pinaxcon.hooks.PinaxBoxesHookSet" | ||||||
|  | 
 | ||||||
|  | # Wagtail config | ||||||
|  | WAGTAIL_SITE_NAME = 'linux.conf.au 2017' | ||||||
|  | WAGTAIL_APPEND_SLASH = True | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| ATTENDEE_PROFILE_FORM = "pinaxcon.registrasion.forms.ProfileForm" | ATTENDEE_PROFILE_FORM = "pinaxcon.registrasion.forms.ProfileForm" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										25
									
								
								pinaxcon/templates/cms_pages/content_page.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								pinaxcon/templates/cms_pages/content_page.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | ||||||
|  | {% extends "site_base.html" %} | ||||||
|  | 
 | ||||||
|  | {% load wagtailcore_tags %} | ||||||
|  | {% load wagtailimages_tags %} | ||||||
|  | 
 | ||||||
|  | {% load sitetree %} | ||||||
|  | {% load i18n %} | ||||||
|  | 
 | ||||||
|  | {% block body_class %}template-blogpage{% endblock %} | ||||||
|  | 
 | ||||||
|  | {% block head_title %}{{ page.title }}{% endblock %} | ||||||
|  | 
 | ||||||
|  | {% block body %} | ||||||
|  |   {% block content %} | ||||||
|  |       <h1>{{ page.title }}</h1> | ||||||
|  | 
 | ||||||
|  |       {% if page.main_image %} | ||||||
|  |           {% image page.main_image width-400 %} | ||||||
|  |       {% endif %} | ||||||
|  | 
 | ||||||
|  |       <div class="intro">{{ page.intro }}</div> | ||||||
|  | 
 | ||||||
|  |       {{ page.body|richtext }} | ||||||
|  |   {% endblock %} | ||||||
|  | {% endblock %} | ||||||
							
								
								
									
										11
									
								
								pinaxcon/templates/cms_pages/home_page.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								pinaxcon/templates/cms_pages/home_page.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | ||||||
|  | {% extends "site_base.html" %} | ||||||
|  | 
 | ||||||
|  | {% load i18n %} | ||||||
|  | 
 | ||||||
|  | {% load wagtailcore_tags %} | ||||||
|  | 
 | ||||||
|  | {% block head_title %}{% trans "Welcome" %}{% endblock %} | ||||||
|  | 
 | ||||||
|  | {% block body %} | ||||||
|  |   {{ page.body }} | ||||||
|  | {% endblock %} | ||||||
							
								
								
									
										35
									
								
								pinaxcon/templates/cms_pages/news_index_page.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								pinaxcon/templates/cms_pages/news_index_page.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,35 @@ | ||||||
|  | {% extends "site_base.html" %} | ||||||
|  | 
 | ||||||
|  | {% load wagtailcore_tags %} | ||||||
|  | {% load wagtailimages_tags %} | ||||||
|  | 
 | ||||||
|  | {% load sitetree %} | ||||||
|  | {% load i18n %} | ||||||
|  | 
 | ||||||
|  | {% block body_class %}template-blogpage{% endblock %} | ||||||
|  | 
 | ||||||
|  | {% block head_title %}{{ page.title }}{% endblock %} | ||||||
|  | 
 | ||||||
|  | {% block body %} | ||||||
|  |   {% block content %} | ||||||
|  |       <h1>{{ page.title }}</h1> | ||||||
|  | 
 | ||||||
|  |       {% if page.main_image %} | ||||||
|  |           {% image page.main_image width-400 %} | ||||||
|  |       {% endif %} | ||||||
|  | 
 | ||||||
|  |       <p class="meta">{{ page.date }}</p> | ||||||
|  | 
 | ||||||
|  |       <div class="intro">{{ page.intro }}</div> | ||||||
|  | 
 | ||||||
|  |       {% if page.get_children.specific %} | ||||||
|  |           <ul> | ||||||
|  |               {% for item in page.get_children.specific %} | ||||||
|  |                   <li><a href="{{ item.url }}">{{ item.title }}</a></li> | ||||||
|  |               {% endfor %} | ||||||
|  |           </ul> | ||||||
|  |       {% endif %} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |   {% endblock %} | ||||||
|  | {% endblock %} | ||||||
							
								
								
									
										27
									
								
								pinaxcon/templates/cms_pages/news_page.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								pinaxcon/templates/cms_pages/news_page.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | ||||||
|  | {% extends "site_base.html" %} | ||||||
|  | 
 | ||||||
|  | {% load wagtailcore_tags %} | ||||||
|  | {% load wagtailimages_tags %} | ||||||
|  | 
 | ||||||
|  | {% load sitetree %} | ||||||
|  | {% load i18n %} | ||||||
|  | 
 | ||||||
|  | {% block body_class %}template-blogpage{% endblock %} | ||||||
|  | 
 | ||||||
|  | {% block head_title %}{{ page.title }}{% endblock %} | ||||||
|  | 
 | ||||||
|  | {% block body %} | ||||||
|  |   {% block content %} | ||||||
|  |       <h1>{{ page.title }}</h1> | ||||||
|  | 
 | ||||||
|  |       {% if page.main_image %} | ||||||
|  |           {% image page.main_image width-400 %} | ||||||
|  |       {% endif %} | ||||||
|  | 
 | ||||||
|  |       <p class="meta">{{ page.date }}</p> | ||||||
|  | 
 | ||||||
|  |       <div class="intro">{{ page.intro }}</div> | ||||||
|  | 
 | ||||||
|  |       {{ page.body|richtext }} | ||||||
|  |   {% endblock %} | ||||||
|  | {% endblock %} | ||||||
|  | @ -1,12 +1,13 @@ | ||||||
| {% extends "site_base.html" %} | {% extends "site_base.html" %} | ||||||
| 
 | 
 | ||||||
| {% load i18n %} | {% load i18n %} | ||||||
| {% load pinax_boxes_tags %} | 
 | ||||||
|  | {% load wagtailcore_tags %} | ||||||
| 
 | 
 | ||||||
| {% block head_title %}{% trans "Welcome" %}{% endblock %} | {% block head_title %}{% trans "Welcome" %}{% endblock %} | ||||||
| 
 | 
 | ||||||
| {% block body_class %}home{% endblock %} | {% block body_class %}home{% endblock %} | ||||||
| 
 | 
 | ||||||
| {% block body %} | {% block body %} | ||||||
|     {% box "homepage" %} |   {{ page.body|richtext }} | ||||||
| {% endblock %} | {% endblock %} | ||||||
|  |  | ||||||
|  | @ -3,13 +3,16 @@ from django.conf.urls import patterns, include, url | ||||||
| from django.conf.urls.static import static | from django.conf.urls.static import static | ||||||
| from django.views.generic import TemplateView | from django.views.generic import TemplateView | ||||||
| 
 | 
 | ||||||
|  | from wagtail.wagtailadmin import urls as wagtailadmin_urls | ||||||
|  | from wagtail.wagtailcore import urls as wagtail_urls | ||||||
|  | 
 | ||||||
| from django.contrib import admin | from django.contrib import admin | ||||||
| 
 | 
 | ||||||
| import symposion.views | import symposion.views | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| urlpatterns = [ | urlpatterns = [ | ||||||
|     url(r"^$", TemplateView.as_view(template_name="homepage.html"), name="home"), |     #url(r"^$", TemplateView.as_view(template_name="homepage.html"), name="home"), | ||||||
|     url(r"^admin/", include(admin.site.urls)), |     url(r"^admin/", include(admin.site.urls)), | ||||||
| 
 | 
 | ||||||
|     url(r"^account/", include("account.urls")), |     url(r"^account/", include("account.urls")), | ||||||
|  | @ -25,7 +28,16 @@ urlpatterns = [ | ||||||
|     url(r"^teams/", include("symposion.teams.urls")), |     url(r"^teams/", include("symposion.teams.urls")), | ||||||
| 
 | 
 | ||||||
|     url(r"^boxes/", include("pinax.boxes.urls")), |     url(r"^boxes/", include("pinax.boxes.urls")), | ||||||
|     url(r"^", include("pinax.pages.urls")), | 
 | ||||||
|  |     url(r'^cms/', include(wagtailadmin_urls)), | ||||||
|  | 
 | ||||||
|  |     # Default catch-all for wagtail pages. | ||||||
|  |     url(r'^', include(wagtail_urls)), | ||||||
|  | 
 | ||||||
|  |     # Matches *NOTHING* -- remove once site_tree is fixed | ||||||
|  |     url(r"^$", TemplateView.as_view(template_name="homepage.html"), name="home"), | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     # Required by registrasion |     # Required by registrasion | ||||||
| #    url(r'^register/', include('registrasion.urls')), | #    url(r'^register/', include('registrasion.urls')), | ||||||
|  |  | ||||||
|  | @ -6,8 +6,9 @@ metron==1.3.7 | ||||||
| pinax-eventlog==1.1.1 | pinax-eventlog==1.1.1 | ||||||
| dj-static==0.0.6 | dj-static==0.0.6 | ||||||
| dj-database-url==0.4.0 | dj-database-url==0.4.0 | ||||||
| pinax-pages==0.4.2 | #pinax-pages==0.4.2 | ||||||
| pinax-boxes==2.1.2 | pinax-boxes==2.1.2 | ||||||
|  | wagtail==1.5.2 | ||||||
| 
 | 
 | ||||||
| # For testing | # For testing | ||||||
| django-nose==1.4.3 | django-nose==1.4.3 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Christopher Neugebauer
						Christopher Neugebauer