# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.utils.text import slugify from django.conf.urls import patterns, url, include from django.conf.urls.i18n import i18n_patterns from .models import newsbox_models from .views import NewsboxArchiveView, NewsboxYearArchiveView, \ NewsboxMonthArchiveView, NewsboxDayArchiveView, NewsboxDetailView def get_urls( archive_view=NewsboxArchiveView, year_archive_view=NewsboxYearArchiveView, month_archive_view=NewsboxMonthArchiveView, day_archive_view=NewsboxDayArchiveView, detail_view=NewsboxDetailView): urls = ['',] for model in newsbox_models : app_name = model._meta.app_label.lower() model_name = model.__name__.lower() viewurl = 'newsbox/%s/%s/'\ % (app_name, model_name,) urls.append( url( r'^%s$' % viewurl, archive_view.as_view( model=model,), name='%s_%s_list' % (app_name, model_name), ), ) viewurl=viewurl+'(?P<year>\d{4})/' urls.append( url( r'^%s$' % viewurl, year_archive_view.as_view( model=model,), name='%s_%s_list_y' % (app_name, model_name), ), ) viewurl=viewurl+'(?P<month>\d{2})/' urls.append( url( r'^%s$' % viewurl, month_archive_view.as_view( model=model,), name='%s_%s_list_ym' % (app_name, model_name), ), ) viewurl=viewurl+'(?P<day>\d{2})/' urls.append( url( r'^%s$' % viewurl, day_archive_view.as_view( model=model,), name='%s_%s_list_ymd' % (app_name, model_name), ), ) urls.append( url( r'^%s(?P<slug>[0-9a-zA-Z_-]+)/$' % viewurl, detail_view.as_view( model=model,), name='%s_%s_detail' % (app_name, model_name), ), ) return urls urls = get_urls() urlpatterns = patterns(*urls)