forked from rc/aircox
continue migration: make website working
This commit is contained in:
@ -1,48 +0,0 @@
|
||||
import datetime
|
||||
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.urls.converters import StringConverter
|
||||
|
||||
|
||||
class PagePathConverter(StringConverter):
|
||||
""" Match path for pages, including surrounding slashes. """
|
||||
regex = r'/?|([-_a-zA-Z0-9]+/)*?'
|
||||
|
||||
def to_python(self, value):
|
||||
if not value or value[0] != '/':
|
||||
value = '/' + value
|
||||
if len(value) > 1 and value[-1] != '/':
|
||||
value = value + '/'
|
||||
return value
|
||||
|
||||
def to_url(self, value):
|
||||
if value[0] == '/':
|
||||
value = value[1:]
|
||||
if value[-1] != '/':
|
||||
value = value + '/'
|
||||
return mark_safe(value)
|
||||
|
||||
|
||||
class WeekConverter:
|
||||
""" Converter for date as YYYYY/WW """
|
||||
regex = r'[0-9]{4}/[0-9]{2}'
|
||||
|
||||
def to_python(self, value):
|
||||
return datetime.datetime.strptime(value + '/1', '%G/%V/%u').date()
|
||||
|
||||
def to_url(self, value):
|
||||
return '{:04d}/{:02d}'.format(*value.isocalendar())
|
||||
|
||||
|
||||
class DateConverter:
|
||||
""" Converter for date as YYYY/MM/DD """
|
||||
regex = r'[0-9]{4}/[0-9]{2}/[0-9]{2}'
|
||||
|
||||
def to_python(self, value):
|
||||
value = value.split('/')
|
||||
return datetime.date(int(value[0]), int(value[1]), int(value[2]))
|
||||
|
||||
def to_url(self, value):
|
||||
return '{:04d}/{:02d}/{:02d}'.format(value.year, value.month,
|
||||
value.day)
|
||||
|
@ -2,7 +2,7 @@ import random
|
||||
|
||||
from django import template
|
||||
|
||||
from aircox import models as aircox
|
||||
from aircox.models import Page,
|
||||
from aircox_web.models import Page
|
||||
|
||||
random.seed()
|
||||
@ -12,11 +12,11 @@ register = template.Library()
|
||||
@register.simple_tag(name='diffusion_page')
|
||||
def do_diffusion_page(diffusion):
|
||||
""" Return page for diffusion. """
|
||||
diff = diffusion.initial if diffusion.initial is not None else diffusion
|
||||
for obj in (diff, diffusion.program):
|
||||
page = getattr(obj, 'page', None)
|
||||
if page is not None and page.status == Page.STATUS.published:
|
||||
return page
|
||||
episode = diffusion.episode
|
||||
if episode.is_publihed:
|
||||
return diff.episode
|
||||
program = episode.program
|
||||
return program if program.is_published else None
|
||||
|
||||
|
||||
@register.simple_tag(name='unique_id')
|
||||
|
Reference in New Issue
Block a user