Skip to content

Commit

Permalink
Let settings be used as defaults
Browse files Browse the repository at this point in the history
  • Loading branch information
yakky committed Apr 23, 2016
1 parent 410ba4c commit 46fe929
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 30 deletions.
6 changes: 6 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@
History
*******

0.6 (unreleased)
================

* Let settings be used as defaults


0.5.11 (2016-03-17)
===================

Expand Down
30 changes: 4 additions & 26 deletions djangocms_page_meta/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from django.utils.six import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from filer.fields.file import FilerFileField
from meta import settings as meta_settings

from .utils import get_metatags # noqa
from .utils import get_cache_key
Expand All @@ -22,29 +23,6 @@
registry = None


OG_TYPE_CHOICES = (
('article', _('Article')),
('website', _('Website')),
)
TWITTER_TYPE_CHOICES = (
('summary', _('Summary')),
('summary_large_image', _('Summary large image')),
('product', _('Product')),
('photo', _('Photo')),
('player', _('Player')),
('app', _('App')),
)
GPLUS_TYPE_CHOICES = (
('Article', _('Article')),
('Blog', _('Blog')),
('Book', _('Book')),
('Event', _('Event')),
('LocalBusiness', _('LocalBusiness')),
('Organization', _('Organization')),
('Person', _('Person')),
('Product', _('Product')),
('Review', _('Review')),
)


@python_2_unicode_compatible
Expand All @@ -54,7 +32,7 @@ class PageMeta(PageExtension):
help_text=_('Used if title image is empty.')
)
og_type = models.CharField(
_('Resource type'), max_length=255, choices=OG_TYPE_CHOICES, blank=True,
_('Resource type'), max_length=255, choices=meta_settings.FB_TYPES, blank=True,
help_text=_('Use Article for generic pages.')
)
og_author = models.ForeignKey(
Expand Down Expand Up @@ -82,14 +60,14 @@ class PageMeta(PageExtension):
help_text=_('\'@\' characther not required.')
)
twitter_type = models.CharField(
_('Resource type'), max_length=255, choices=TWITTER_TYPE_CHOICES, blank=True
_('Resource type'), max_length=255, choices=meta_settings.TWITTER_TYPES, blank=True
)
gplus_author = models.CharField(
_('Author Google+ URL'), max_length=255, default='', blank=True,
help_text=_('Use the Google+ Name (together with "+")')
)
gplus_type = models.CharField(
_('Resource type'), max_length=255, choices=GPLUS_TYPE_CHOICES, blank=True,
_('Resource type'), max_length=255, choices=meta_settings.GPLUS_TYPES, blank=True,
help_text=_('Use Article for generic pages.')
)

Expand Down
22 changes: 19 additions & 3 deletions djangocms_page_meta/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
from django.utils.safestring import mark_safe
from django.utils.translation import get_language_from_request

from meta import settings as meta_settings

if django.get_version() >= '1.8':
from django.template.loader import render_to_string
else:
Expand Down Expand Up @@ -81,6 +83,19 @@ def get_page_meta(page, language):
meta.gplus_description = meta.description
# Skipping title-level metas
pass
defaults = {
'object_type': meta_settings.FB_TYPE,
'og_type': meta_settings.FB_TYPE,
'og_app_id': meta_settings.FB_APPID,
'og_profile_id': meta_settings.FB_PROFILE_ID,
'og_publisher': meta_settings.FB_PUBLISHER,
'og_author_url': meta_settings.FB_AUTHOR_URL,
'twitter_type': meta_settings.TWITTER_TYPE,
'twitter_site': meta_settings.TWITTER_SITE,
'twitter_author': meta_settings.TWITTER_AUTHOR,
'gplus_type': meta_settings.GPLUS_TYPE,
'gplus_author': meta_settings.GPLUS_AUTHOR,
}
try:
pagemeta = page.pagemeta
meta.object_type = pagemeta.og_type
Expand All @@ -105,8 +120,7 @@ def get_page_meta(page, language):
meta.expiration_time = page.publication_end_date.isoformat()
if meta.og_type == 'article':
meta.og_publisher = pagemeta.og_publisher
if pagemeta.og_author_url:
meta.og_author_url = pagemeta.og_author_url
meta.og_author_url = pagemeta.og_author_url
try:
from djangocms_page_tags.utils import get_title_tags, get_page_tags
tags = list(get_title_tags(page, language))
Expand All @@ -118,8 +132,10 @@ def get_page_meta(page, language):
if not meta.image and pagemeta.image:
meta.image = pagemeta.image.url
except PageMeta.DoesNotExist:
# Skipping page-level metas
pass
for attr, val in defaults.items():
if not getattr(meta, attr, '') and val:
setattr(meta, attr, val)
meta.url = page.get_absolute_url(language)
return meta

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
include_package_data=True,
install_requires=(
'django-cms>=3.0',
'django-meta>=1.0',
'django-meta>=1.3',
'django-filer>=0.9.5',
),
license='BSD',
Expand Down

0 comments on commit 46fe929

Please sign in to comment.