from django.conf.urls.defaults import *
from django.views.generic import list_detail

from oddjoth.characters.models import (Attribute,
                                       Character,
                                       Skill,
                                       SkillClass,
                                       Trait)

attribute_list_info = {
    'queryset': Attribute.objects.all(),
    'allow_empty': True,
    'template_object_name': 'attribute',
}

trait_list_info = {
    'queryset': Trait.objects.all(),
    'allow_empty': True,
    'template_object_name': 'trait',
}

skill_list_info = {
    'queryset': Skill.objects.all(),
    'allow_empty': True,
    'template_object_name': 'skill',
}

character_list_info = {
    'queryset': Character.objects.all(),
    'allow_empty': True,
    'template_object_name': 'character',
}

character_detail_info = {
    'queryset': Character.objects.all(),
    'template_object_name': 'character',
}

skill_detail_info = {
    'queryset': Skill.objects.all(),
    'template_object_name': 'skill',
}

skillclass_detail_info = {
    'queryset': SkillClass.objects.all(),
    'template_object_name': 'skill_class',
}

attribute_detail_info = {
    'queryset': Attribute.objects.all(),
    'template_object_name': 'attribute',
}

trait_detail_info = {
    'queryset': Trait.objects.all(),
    'template_object_name': 'trait',
}

urlpatterns = patterns('',
    # Lists
    (r'^$', list_detail.object_list, character_list_info),
    (r'^attributes/$', list_detail.object_list, attribute_list_info),
    (r'^traits/$', list_detail.object_list, trait_list_info),
    (r'^skills/$', list_detail.object_list, skill_list_info),

    # Detail views
    (r'^(?P<object_id>\d+)$', list_detail.object_detail,
        character_detail_info),
    (r'^skills/(?P<slug>[\S-]+)$', list_detail.object_detail,
        skill_detail_info),
    (r'^skill_classes/(?P<slug>[\S-]+)$', list_detail.object_detail,
        skillclass_detail_info),
    (r'^attributes/(?P<slug>[\S-]+)$', list_detail.object_detail,
        attribute_detail_info),
    (r'^traits/(?P<slug>[\S-]+)$', list_detail.object_detail,
        trait_detail_info),
)

