Pinned Django on < 2.0 for better compatibility.
Mainlined traslation code for better DRY workflow. Fixed the EventDetail Mixin.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
beautifulsoup4
|
||||
django
|
||||
django < 2.0
|
||||
django-appconf
|
||||
django-ckeditor
|
||||
django-contrib-comments
|
||||
|
||||
@@ -41,6 +41,14 @@ def get_upload_path(instance, filename):
|
||||
return "categories/%s.%s" % (instance.slug, extension)
|
||||
|
||||
|
||||
def get_localized(obj, attr):
|
||||
""" Return the localilzed field, or the fallback if the localized is empty.
|
||||
"""
|
||||
fallback = attr + '_de'
|
||||
localized = attr + '_' + get_language()[:2]
|
||||
return getattr(obj, localized) or getattr(obj, fallback)
|
||||
|
||||
|
||||
class ArticleManager(models.Manager):
|
||||
"""Adds some predifined querys and joins some tables for faster querys."""
|
||||
|
||||
@@ -118,16 +126,12 @@ class Article(models.Model):
|
||||
@property
|
||||
def headline(self):
|
||||
"""Return the localized headline, fallback to german if necessary."""
|
||||
return mark_safe(
|
||||
getattr(self, "headline_%s" % get_language(), self.headline_de)
|
||||
)
|
||||
return mark_safe(get_localized(self, 'headline'))
|
||||
|
||||
@property
|
||||
def content(self):
|
||||
"""Return the localized content, fallback to german if necessary."""
|
||||
return mark_safe(
|
||||
getattr(self, "content_%s" % get_language(), self.content_de)
|
||||
)
|
||||
return mark_safe(get_localized(self, 'content'))
|
||||
|
||||
|
||||
class Category(models.Model):
|
||||
@@ -149,13 +153,12 @@ class Category(models.Model):
|
||||
@property
|
||||
def name(self):
|
||||
"""Return the localized name, fallback to german if necessary."""
|
||||
return getattr(self, "name_%s" % get_language(), self.name_de)
|
||||
return get_localized(self, 'name')
|
||||
|
||||
@property
|
||||
def description(self):
|
||||
"""Return the localized description, fallback to german if necessary."""
|
||||
return getattr(self, "description_%s" % get_language(),
|
||||
self.description_de)
|
||||
return get_localized(self, 'description')
|
||||
|
||||
def get_absolute_url(self):
|
||||
"""Return the URL of the article archive, filtered on this category."""
|
||||
@@ -264,9 +267,7 @@ class Page(models.Model):
|
||||
@property
|
||||
def content(self):
|
||||
"""Return the localized content, fallback to german if necessary."""
|
||||
return mark_safe(
|
||||
getattr(self, "content_%s" % get_language()) or self.content_de
|
||||
)
|
||||
return mark_safe(get_localized(self, 'content'))
|
||||
|
||||
@property
|
||||
def css_class(self):
|
||||
@@ -278,24 +279,22 @@ class Page(models.Model):
|
||||
@property
|
||||
def description(self):
|
||||
"""Return the localized description, fallback to german if necessary."""
|
||||
return getattr(self,
|
||||
"description_%s" % get_language()) or self.description_de
|
||||
return get_localized(self, 'description')
|
||||
|
||||
@property
|
||||
def menu_name(self):
|
||||
"""Return the localized menu name, fallback to german if necessary."""
|
||||
return getattr(self,
|
||||
"menu_name_%s" % get_language()) or self.menu_name_de
|
||||
return get_localized(self, 'menu_name')
|
||||
|
||||
@property
|
||||
def pdf_file(self):
|
||||
"""Return the localized PDF file, fallback to german if necessary."""
|
||||
return getattr(self, "pdf_%s" % get_language(), self.pdf_de)
|
||||
return get_localized(self, 'pdf_file')
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
"""Return the localized title, fallback to german if necessary."""
|
||||
return getattr(self, "title_%s" % get_language()) or self.title_de
|
||||
return get_localized(self, 'title')
|
||||
|
||||
def clean(self):
|
||||
"""set the URL path, the right content type, and scrub the HTML code."""
|
||||
|
||||
@@ -48,6 +48,10 @@ class EventDetailMixin(object):
|
||||
|
||||
:return: a django QuerySets
|
||||
"""
|
||||
if self.model == models.Event:
|
||||
self.event = models.Event.objects.get(pk=self.kwargs['pk'])
|
||||
queryset = self.model.objects.all()
|
||||
else:
|
||||
try:
|
||||
self.event = models.Event.objects.get(pk=self.kwargs['event'])
|
||||
queryset = self.model.objects.filter(event=self.event)
|
||||
|
||||
Reference in New Issue
Block a user