Skip to content
Snippets Groups Projects
urls.py 2.08 KiB
Newer Older
Olivier Le Brouster's avatar
Olivier Le Brouster committed
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

Dylann Cordel's avatar
Dylann Cordel committed
from django.conf.urls import patterns, url
Olivier Le Brouster's avatar
Olivier Le Brouster committed

from .models import newsbox_models
from .views import NewsboxArchiveView, NewsboxYearArchiveView, \
    NewsboxMonthArchiveView, NewsboxDayArchiveView, NewsboxDetailView

Dylann Cordel's avatar
Dylann Cordel committed

Olivier Le Brouster's avatar
Olivier Le Brouster committed
def get_urls(
Dylann Cordel's avatar
Dylann Cordel committed
    archive_view=NewsboxArchiveView,
    year_archive_view=NewsboxYearArchiveView,
    month_archive_view=NewsboxMonthArchiveView,
    day_archive_view=NewsboxDayArchiveView,
    detail_view=NewsboxDetailView
):

    urls = ['', ]
    for model in newsbox_models:
Olivier Le Brouster's avatar
Olivier Le Brouster committed
        app_name = model._meta.app_label.lower()
        model_name = model.__name__.lower()
Dylann Cordel's avatar
Dylann Cordel committed

        viewurl = 'newsbox/%s/%s/' % (app_name, model_name, )
Olivier Le Brouster's avatar
Olivier Le Brouster committed
        urls.append(
            url(
Dylann Cordel's avatar
Dylann Cordel committed
                r'^%s$' % viewurl,
Olivier Le Brouster's avatar
Olivier Le Brouster committed
                archive_view.as_view(
                    model=model,),
                name='%s_%s_list' % (app_name, model_name),
            ),
        )
Dylann Cordel's avatar
Dylann Cordel committed
        viewurl = viewurl + '(?P<year>\d{4})/'
Olivier Le Brouster's avatar
Olivier Le Brouster committed
        urls.append(
            url(
Dylann Cordel's avatar
Dylann Cordel committed
                r'^%s$' % viewurl,
Olivier Le Brouster's avatar
Olivier Le Brouster committed
                year_archive_view.as_view(
                    model=model,),
                name='%s_%s_list_y' % (app_name, model_name),
            ),
        )
Dylann Cordel's avatar
Dylann Cordel committed
        viewurl = viewurl + '(?P<month>\d{2})/'
Olivier Le Brouster's avatar
Olivier Le Brouster committed
        urls.append(
            url(
Dylann Cordel's avatar
Dylann Cordel committed
                r'^%s$' % viewurl,
Olivier Le Brouster's avatar
Olivier Le Brouster committed
                month_archive_view.as_view(
                    model=model,),
                name='%s_%s_list_ym' % (app_name, model_name),
            ),
        )
Dylann Cordel's avatar
Dylann Cordel committed
        viewurl = viewurl + '(?P<day>\d{2})/'
Olivier Le Brouster's avatar
Olivier Le Brouster committed
        urls.append(
            url(
Dylann Cordel's avatar
Dylann Cordel committed
                r'^%s$' % viewurl,
Olivier Le Brouster's avatar
Olivier Le Brouster committed
                day_archive_view.as_view(
                    model=model,),
                name='%s_%s_list_ymd' % (app_name, model_name),
            ),
        )
        urls.append(
            url(
Dylann Cordel's avatar
Dylann Cordel committed
                r'^%s(?P<slug>[0-9a-zA-Z_-]+)/$' % viewurl,
Olivier Le Brouster's avatar
Olivier Le Brouster committed
                detail_view.as_view(
                    model=model,),
                name='%s_%s_detail' % (app_name, model_name),
            ),
        )
    return urls

urls = get_urls()
urlpatterns = patterns(*urls)