Added ungleich app to extend Page models.
Ungleich app has a model called UngleichPage, this model has an attribute called image_header which will be used to set the background image for the page header. Signed-off-by: rscnt <rascnt@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								6c312a6e2e
							
						
					
				
			
			
				commit
				
					
						76bfb3c47b
					
				
			
		
					 10 changed files with 152 additions and 11 deletions
				
			
		| 
						 | 
					@ -7,7 +7,7 @@ Copyright 2015 Ungleich.
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
import django.db.backends.postgresql_psycopg2
 | 
					import django.db.backends.postgresql_psycopg2
 | 
				
			||||||
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gettext = lambda s: s
 | 
					gettext = lambda s: s
 | 
				
			||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
					BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 | 
				
			||||||
| 
						 | 
					@ -81,6 +81,8 @@ INSTALLED_APPS = (
 | 
				
			||||||
    'djangocms_blog',
 | 
					    'djangocms_blog',
 | 
				
			||||||
    'bootstrap3',
 | 
					    'bootstrap3',
 | 
				
			||||||
    'compressor',
 | 
					    'compressor',
 | 
				
			||||||
 | 
					    # ungleich
 | 
				
			||||||
 | 
					    'ungleich',
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MIDDLEWARE_CLASSES = (
 | 
					MIDDLEWARE_CLASSES = (
 | 
				
			||||||
| 
						 | 
					@ -159,12 +161,6 @@ DATABASES = {
 | 
				
			||||||
# Internationalization
 | 
					# Internationalization
 | 
				
			||||||
# https://docs.djangoproject.com/en/1.7/topics/i18n/
 | 
					# https://docs.djangoproject.com/en/1.7/topics/i18n/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LANGUAGES = (
 | 
					 | 
				
			||||||
    ('en', 'English'),
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LANGUAGE_CODE = 'en'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TIME_ZONE = 'UTC'
 | 
					TIME_ZONE = 'UTC'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USE_I18N = True
 | 
					USE_I18N = True
 | 
				
			||||||
| 
						 | 
					@ -173,6 +169,62 @@ USE_L10N = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USE_TZ = True
 | 
					USE_TZ = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LANGUAGES = (
 | 
				
			||||||
 | 
					    ('en-us', _('US English')),
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LANGUAGE_CODE = 'en-us'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CMS_PLACEHOLDER_CONF = {
 | 
				
			||||||
 | 
					    'logo_image': {
 | 
				
			||||||
 | 
					        'name': 'Logo Image',
 | 
				
			||||||
 | 
					        'plugins': ['FilerImagePlugin'],
 | 
				
			||||||
 | 
					        'limits': {
 | 
				
			||||||
 | 
					            'global': 1,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    'page-title': {
 | 
				
			||||||
 | 
					        'name': 'Page Title',
 | 
				
			||||||
 | 
					        'plugins': ['TextPlugin'],
 | 
				
			||||||
 | 
					        'default_plugins': [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                'plugin_type': 'TextPlugin',
 | 
				
			||||||
 | 
					                'values': {
 | 
				
			||||||
 | 
					                    'body': 'Page Title...'
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        'limits': {
 | 
				
			||||||
 | 
					            'global': 1,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    'page-subtitle': {
 | 
				
			||||||
 | 
					        'name': 'Page Subtitle',
 | 
				
			||||||
 | 
					        'inherit': 'page-title',
 | 
				
			||||||
 | 
					        'default_plugins': [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                'plugin_type': 'TextPlugin',
 | 
				
			||||||
 | 
					                'values': {
 | 
				
			||||||
 | 
					                    'body': 'Page subtitle...'
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    'footer_copyright': {
 | 
				
			||||||
 | 
					        'name': 'Copyright',
 | 
				
			||||||
 | 
					        'inherit': 'page-title',
 | 
				
			||||||
 | 
					        'default_plugins': [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                'plugin_type': 'TextPlugin',
 | 
				
			||||||
 | 
					                'values': {
 | 
				
			||||||
 | 
					                    'body': 'Copyright...'
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
try:
 | 
					try:
 | 
				
			||||||
    from dynamicweb.local.local_settings import *
 | 
					    from dynamicweb.local.local_settings import *
 | 
				
			||||||
except ImportError:
 | 
					except ImportError:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,14 +1,21 @@
 | 
				
			||||||
from django.conf.urls import include, url
 | 
					from django.conf.urls import patterns, include, url
 | 
				
			||||||
from django.contrib import admin
 | 
					from django.contrib import admin
 | 
				
			||||||
# deprecated in version 1.8
 | 
					# deprecated in version 1.8
 | 
				
			||||||
from django.conf.urls.i18n import i18n_patterns
 | 
					from django.conf.urls.i18n import i18n_patterns
 | 
				
			||||||
from django.conf.urls.static import static
 | 
					from django.conf.urls.static import static
 | 
				
			||||||
from dynamicweb import settings
 | 
					from dynamicweb import settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
urlpatterns = i18n_patterns('',
 | 
					urlpatterns = [
 | 
				
			||||||
    url(r'^admin/', include(admin.site.urls)),
 | 
					    url(r'^admin/', include(admin.site.urls)),
 | 
				
			||||||
    url(r'^digital.glarus/', include('digital_glarus.urls',
 | 
					    url(r'^digital.glarus/', include('digital_glarus.urls',
 | 
				
			||||||
        namespace="digital_glarus")),
 | 
					                                     namespace="digital_glarus")),
 | 
				
			||||||
    url(r'^', include('cms.urls')),
 | 
					    url(r'^', include('cms.urls')),
 | 
				
			||||||
    url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
 | 
					    url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
 | 
				
			||||||
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 | 
					] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if settings.DEBUG:
 | 
				
			||||||
 | 
					    urlpatterns += patterns('',
 | 
				
			||||||
 | 
					                            url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
 | 
				
			||||||
 | 
					                                'document_root': settings.MEDIA_ROOT,
 | 
				
			||||||
 | 
					                            }),
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										0
									
								
								ungleich/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								ungleich/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										12
									
								
								ungleich/admin.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								ungleich/admin.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					from django.contrib import admin
 | 
				
			||||||
 | 
					from cms.extensions import PageExtensionAdmin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Register your models here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from .models import UngleichPage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class UngleichPageAdmin(PageExtensionAdmin):
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					admin.site.register(UngleichPage, UngleichPageAdmin)
 | 
				
			||||||
							
								
								
									
										25
									
								
								ungleich/cms_toolbar.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								ungleich/cms_toolbar.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					from cms.extensions.toolbar import ExtensionToolbar
 | 
				
			||||||
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from cms.toolbar_pool import toolbar_pool
 | 
				
			||||||
 | 
					from cms.toolbar_base import CMSToolbar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from .models import UngleichPage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@toolbar_pool.register
 | 
				
			||||||
 | 
					class UngleichPageToolbar(ExtensionToolbar):
 | 
				
			||||||
 | 
					    # defineds the model for the current toolbar
 | 
				
			||||||
 | 
					    model = UngleichPage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def populate(self):
 | 
				
			||||||
 | 
					        # setup the extension toolbar with permissions and sanity checks
 | 
				
			||||||
 | 
					        current_page_menu = self._setup_extension_toolbar()
 | 
				
			||||||
 | 
					        # if it's all ok
 | 
				
			||||||
 | 
					        if current_page_menu:
 | 
				
			||||||
 | 
					            # retrieves the instance of the current extension (if any) and the toolbar item url
 | 
				
			||||||
 | 
					            page_extension, url = self.get_page_extension_admin()
 | 
				
			||||||
 | 
					            if url:
 | 
				
			||||||
 | 
					                # adds a toolbar item
 | 
				
			||||||
 | 
					                current_page_menu.add_modal_item(_('Page Header'), url=url,
 | 
				
			||||||
 | 
					                    disabled=not self.toolbar.edit_mode)
 | 
				
			||||||
							
								
								
									
										27
									
								
								ungleich/migrations/0001_initial.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								ungleich/migrations/0001_initial.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import models, migrations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('cms', '0011_auto_20150419_1006'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.CreateModel(
 | 
				
			||||||
 | 
					            name='UngleichPage',
 | 
				
			||||||
 | 
					            fields=[
 | 
				
			||||||
 | 
					                ('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
 | 
				
			||||||
 | 
					                ('image_header', models.ImageField(upload_to='image_header')),
 | 
				
			||||||
 | 
					                ('extended_object', models.OneToOneField(editable=False, to='cms.Page')),
 | 
				
			||||||
 | 
					                ('public_extension', models.OneToOneField(editable=False, related_name='draft_extension', null=True, to='ungleich.UngleichPage')),
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            options={
 | 
				
			||||||
 | 
					                'abstract': False,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            bases=(models.Model,),
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
							
								
								
									
										0
									
								
								ungleich/migrations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								ungleich/migrations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										12
									
								
								ungleich/models.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								ungleich/models.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					from django.db import models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from cms.extensions import PageExtension
 | 
				
			||||||
 | 
					from cms.extensions.extension_pool import extension_pool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create your models here.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class UngleichPage(PageExtension):
 | 
				
			||||||
 | 
					    image_header = models.ImageField(upload_to='image_header')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extension_pool.register(UngleichPage)
 | 
				
			||||||
							
								
								
									
										3
									
								
								ungleich/tests.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ungleich/tests.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					from django.test import TestCase
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create your tests here.
 | 
				
			||||||
							
								
								
									
										3
									
								
								ungleich/views.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								ungleich/views.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					from django.shortcuts import render
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create your views here.
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue