Skip to content

Commit 7ee155c

Browse files
committed
Completed adding Creatures to The Strange and Numenera.
1 parent ef94327 commit 7ee155c

File tree

10 files changed

+271
-66
lines changed

10 files changed

+271
-66
lines changed

cyphercore/urls.py

Lines changed: 63 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,72 @@
11
from django.urls import path
2-
from django.views.generic import TemplateView
32

43
from . import views
54

65
app_name = 'cyphercore'
76
urlpatterns = [
87
path('', views.index, name='index'),
9-
path('abilities/', views.AbilityListView.as_view(), name='ability_list'),
10-
path('abilities/cards/', views.AbilityCardsView.as_view(), name='ability_cards'),
11-
path('abilities/<slug:slug>/', views.AbilityDetailView.as_view(), name='ability_detail'),
8+
path(
9+
'abilities/', views.AbilityListView.as_view(),
10+
name='ability_list'),
11+
path(
12+
'abilities/cards/', views.AbilityCardsView.as_view(),
13+
name='ability_cards'),
14+
path(
15+
'abilities/<slug:slug>/', views.AbilityDetailView.as_view(),
16+
name='ability_detail'),
1217
path('artifacts/', views.ArtifactListView.as_view(), name='artifact_list'),
13-
path('artifacts/cards/', views.ArtifactCardsView.as_view(), name='artifact_cards'),
14-
path('artifacts/<slug:slug>/', views.ArtifactDetailView.as_view(), name='artifact_detail'),
15-
path('characters/', views.CharacterListView.as_view(), name='character_list'),
16-
path('characters/<slug:slug>/', views.CharacterDetailView.as_view(), name='character_detail'),
17-
path('characters/<slug:slug>/summary/', views.CharacterDetailView.as_view(), name='character_detail'),
18-
path('creatures/', views.CreatureListView.as_view(), name='creature_list'),
19-
path('creatures/<slug:slug>/', views.CreatureDetailView.as_view(), name='creature_detail'),
20-
path('cyphers/', views.CypherListView.as_view(), name='cypher_list'),
21-
path('cyphers/cards/', views.CypherCardsView.as_view(), name='cypher_cards'),
22-
path('cyphers/<slug:slug>/', views.CypherDetailView.as_view(), name='cypher_detail'),
23-
path('descriptors/', views.DescriptorListView.as_view(), name='descriptor_list'),
24-
path('descriptors/<slug:slug>/', views.DescriptorDetailView.as_view(), name='descriptor_detail'),
25-
path('equipment/', views.EquipmentListView.as_view(), name='equipment_list'),
26-
path('foci/', views.FocusListView.as_view(), name='focus_list'),
27-
path('foci/<slug:slug>/', views.FocusDetailView.as_view(), name='focus_detail'),
28-
path('skills/', views.SkillListView.as_view(), name='skill_list'),
29-
path('types/', views.TypeListView.as_view(), name='type_list'),
30-
path('types/<slug:slug>/', views.TypeDetailView.as_view(), name='type_detail'),
18+
path(
19+
'artifacts/cards/', views.ArtifactCardsView.as_view(),
20+
name='artifact_cards'),
21+
path(
22+
'artifacts/<slug:slug>/', views.ArtifactDetailView.as_view(),
23+
name='artifact_detail'),
24+
path(
25+
'characters/', views.CharacterListView.as_view(),
26+
name='character_list'),
27+
path(
28+
'characters/<slug:slug>/',
29+
views.CharacterDetailView.as_view(), name='character_detail'),
30+
path(
31+
'characters/<slug:slug>/summary/', views.CharacterDetailView.as_view(),
32+
name='character_detail'),
33+
path(
34+
'creatures/', views.CreatureListView.as_view(),
35+
name='creature_list'),
36+
path(
37+
'creatures/<slug:slug>/', views.CreatureDetailView.as_view(),
38+
name='creature_detail'),
39+
path(
40+
'cyphers/', views.CypherListView.as_view(),
41+
name='cypher_list'),
42+
path(
43+
'cyphers/cards/', views.CypherCardsView.as_view(),
44+
name='cypher_cards'),
45+
path(
46+
'cyphers/<slug:slug>/', views.CypherDetailView.as_view(),
47+
name='cypher_detail'),
48+
path(
49+
'descriptors/', views.DescriptorListView.as_view(),
50+
name='descriptor_list'),
51+
path(
52+
'descriptors/<slug:slug>/', views.DescriptorDetailView.as_view(),
53+
name='descriptor_detail'),
54+
path(
55+
'equipment/', views.EquipmentListView.as_view(),
56+
name='equipment_list'),
57+
path(
58+
'foci/', views.FocusListView.as_view(),
59+
name='focus_list'),
60+
path(
61+
'foci/<slug:slug>/', views.FocusDetailView.as_view(),
62+
name='focus_detail'),
63+
path(
64+
'skills/', views.SkillListView.as_view(),
65+
name='skill_list'),
66+
path(
67+
'types/', views.TypeListView.as_view(),
68+
name='type_list'),
69+
path(
70+
'types/<slug:slug>/', views.TypeDetailView.as_view(),
71+
name='type_detail'),
3172
]

cyphercore/views.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
from django.contrib.auth.decorators import login_required
22
from django.contrib.auth.mixins import LoginRequiredMixin
3-
from django.http import HttpResponse
43
from django.shortcuts import render
5-
from django.urls import reverse
64
from django.views import generic
75

86
from .models import (
@@ -12,110 +10,132 @@
1210

1311
BASE_LOGIN_URL = '/admin/login/'
1412

13+
1514
@login_required(login_url=BASE_LOGIN_URL)
1615
def index(request):
1716
return render(request, 'cyphercore/index.html')
1817

18+
1919
class AbilityDetailView(LoginRequiredMixin, generic.DetailView):
2020
login_url = BASE_LOGIN_URL
2121
model = Ability
2222
template_name = 'cyphercore/ability_detail.html'
2323

24+
2425
class AbilityCardsView(LoginRequiredMixin, generic.ListView):
2526
login_url = BASE_LOGIN_URL
2627
model = Ability
2728
template_name = 'cyphercore/ability_cards.html'
2829

30+
2931
class AbilityListView(LoginRequiredMixin, generic.ListView):
3032
login_url = BASE_LOGIN_URL
3133
model = Ability
3234
template_name = 'cyphercore/ability_list.html'
3335

36+
3437
class DescriptorDetailView(LoginRequiredMixin, generic.DetailView):
3538
login_url = BASE_LOGIN_URL
3639
model = Descriptor
3740
template_name = 'cyphercore/descriptor_detail.html'
3841

42+
3943
class DescriptorListView(LoginRequiredMixin, generic.ListView):
4044
login_url = BASE_LOGIN_URL
4145
model = Descriptor
4246
template_name = 'cyphercore/descriptor_list.html'
4347

48+
4449
class EquipmentListView(LoginRequiredMixin, generic.ListView):
4550
login_url = BASE_LOGIN_URL
4651
model = Equipment
4752
template_name = 'cyphercore/equipment_list.html'
4853

54+
4955
class FocusListView(LoginRequiredMixin, generic.ListView):
5056
login_url = BASE_LOGIN_URL
5157
model = Focus
5258
template_name = 'cyphercore/focus_list.html'
5359

60+
5461
class FocusDetailView(LoginRequiredMixin, generic.DetailView):
5562
login_url = BASE_LOGIN_URL
5663
model = Focus
5764
template_name = 'cyphercore/focus_detail.html'
5865

66+
5967
class SkillListView(LoginRequiredMixin, generic.ListView):
6068
login_url = BASE_LOGIN_URL
6169
model = Skill
6270
template_name = 'cyphercore/skill_list.html'
6371

72+
6473
class TypeListView(LoginRequiredMixin, generic.ListView):
6574
login_url = BASE_LOGIN_URL
6675
model = Type
6776
template_name = 'cyphercore/type_list.html'
6877

78+
6979
class TypeDetailView(LoginRequiredMixin, generic.DetailView):
7080
login_url = BASE_LOGIN_URL
7181
model = Type
7282
template_name = 'cyphercore/type_detail.html'
7383

84+
7485
class CharacterListView(LoginRequiredMixin, generic.ListView):
7586
login_url = BASE_LOGIN_URL
7687
model = Character
7788
template_name = 'cyphercore/character_list.html'
7889

90+
7991
class CharacterDetailView(LoginRequiredMixin, generic.DetailView):
8092
login_url = BASE_LOGIN_URL
8193
model = Character
8294
template_name = 'cyphercore/character_detail.html'
8395

96+
8497
class CreatureListView(LoginRequiredMixin, generic.ListView):
8598
login_url = BASE_LOGIN_URL
8699
model = Creature
87100
template_name = 'cyphercore/creature_list.html'
88101

102+
89103
class CreatureDetailView(LoginRequiredMixin, generic.DetailView):
90104
login_url = BASE_LOGIN_URL
91105
model = Creature
92106
template_name = 'cyphercore/creature_detail.html'
93107

108+
94109
class CypherListView(LoginRequiredMixin, generic.ListView):
95110
login_url = BASE_LOGIN_URL
96111
model = Cypher
97112
template_name = 'cyphercore/cypher_list.html'
98113

114+
99115
class CypherCardsView(LoginRequiredMixin, generic.ListView):
100116
login_url = BASE_LOGIN_URL
101117
model = Cypher
102118
template_name = 'cyphercore/cypher_cards.html'
103119

120+
104121
class CypherDetailView(LoginRequiredMixin, generic.DetailView):
105122
login_url = BASE_LOGIN_URL
106123
model = Cypher
107124
template_name = 'cyphercore/cypher_detail.html'
108125

126+
109127
class ArtifactListView(LoginRequiredMixin, generic.ListView):
110128
login_url = BASE_LOGIN_URL
111129
model = Artifact
112130
template_name = 'cyphercore/artifact_list.html'
113131

132+
114133
class ArtifactCardsView(LoginRequiredMixin, generic.ListView):
115134
login_url = BASE_LOGIN_URL
116135
model = Artifact
117136
template_name = 'cyphercore/artifact_cards.html'
118137

138+
119139
class ArtifactDetailView(LoginRequiredMixin, generic.DetailView):
120140
login_url = BASE_LOGIN_URL
121141
model = Artifact
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{% extends "cyphercore/base_creature_detail.html" %}
2+
{% load static %}
3+
{% block title %}Numenera{% endblock %}
4+
{% block subtitle %}{{ creature.name }}{% endblock %}
5+
{% block custom_css %}
6+
<link rel="stylesheet" type="text/css" href="{% static 'numenera/css/custom.css' %}" />
7+
{% endblock %}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{% extends "cyphercore/base_creature_list.html" %}
2+
{% load static %}
3+
{% block title %}Numenera{% endblock %}
4+
{% block subtitle %}Creatures{% endblock %}
5+
{% block header_text %}Numenera: Creature{% endblock %}
6+
{% block custom_css %}
7+
<link
8+
rel="stylesheet" type="text/css"
9+
href="{% static 'numenera/css/custom.css' %}"
10+
/>
11+
{% endblock %}

numenera/urls.py

Lines changed: 63 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,72 @@
11
from django.urls import path
2-
from django.views.generic import TemplateView
32

43
from . import views
54

65
app_name = 'numenera'
76
urlpatterns = [
87
path('', views.index, name='index'),
9-
path('abilities/', views.AbilityListView.as_view(), name='ability_list'),
10-
path('abilities/cards/', views.AbilityCardsView.as_view(), name='ability_cards'),
11-
path('abilities/<slug:slug>/', views.AbilityDetailView.as_view(), name='ability_detail'),
8+
path(
9+
'abilities/', views.AbilityListView.as_view(),
10+
name='ability_list'),
11+
path(
12+
'abilities/cards/', views.AbilityCardsView.as_view(),
13+
name='ability_cards'),
14+
path(
15+
'abilities/<slug:slug>/', views.AbilityDetailView.as_view(),
16+
name='ability_detail'),
1217
path('artifacts/', views.ArtifactListView.as_view(), name='artifact_list'),
13-
path('artifacts/cards/', views.ArtifactCardsView.as_view(), name='artifact_cards'),
14-
path('artifacts/<slug:slug>/', views.ArtifactDetailView.as_view(), name='artifact_detail'),
15-
path('characters/', views.CharacterListView.as_view(), name='character_list'),
16-
path('characters/<slug:slug>/', views.CharacterDetailView.as_view(), name='character_detail'),
17-
path('characters/<slug:slug>/summary/', views.CharacterDetailView.as_view(), name='character_detail'),
18-
path('cyphers/', views.CypherListView.as_view(), name='cypher_list'),
19-
path('cyphers/cards/', views.CypherCardsView.as_view(), name='cypher_cards'),
20-
path('cyphers/<slug:slug>/', views.CypherDetailView.as_view(), name='cypher_detail'),
21-
path('descriptors/', views.DescriptorListView.as_view(), name='descriptor_list'),
22-
path('descriptors/<slug:slug>/', views.DescriptorDetailView.as_view(), name='descriptor_detail'),
23-
path('equipment/', views.EquipmentListView.as_view(), name='equipment_list'),
24-
path('foci/', views.FocusListView.as_view(), name='focus_list'),
25-
path('foci/<slug:slug>/', views.FocusDetailView.as_view(), name='focus_detail'),
26-
path('skills/', views.SkillListView.as_view(), name='skill_list'),
27-
path('types/', views.TypeListView.as_view(), name='type_list'),
28-
path('types/<slug:slug>/', views.TypeDetailView.as_view(), name='type_detail'),
18+
path(
19+
'artifacts/cards/', views.ArtifactCardsView.as_view(),
20+
name='artifact_cards'),
21+
path(
22+
'artifacts/<slug:slug>/', views.ArtifactDetailView.as_view(),
23+
name='artifact_detail'),
24+
path(
25+
'characters/', views.CharacterListView.as_view(),
26+
name='character_list'),
27+
path(
28+
'characters/<slug:slug>/',
29+
views.CharacterDetailView.as_view(), name='character_detail'),
30+
path(
31+
'characters/<slug:slug>/summary/', views.CharacterDetailView.as_view(),
32+
name='character_detail'),
33+
path(
34+
'creatures/', views.CreatureListView.as_view(),
35+
name='creature_list'),
36+
path(
37+
'creatures/<slug:slug>/', views.CreatureDetailView.as_view(),
38+
name='creature_detail'),
39+
path(
40+
'cyphers/', views.CypherListView.as_view(),
41+
name='cypher_list'),
42+
path(
43+
'cyphers/cards/', views.CypherCardsView.as_view(),
44+
name='cypher_cards'),
45+
path(
46+
'cyphers/<slug:slug>/', views.CypherDetailView.as_view(),
47+
name='cypher_detail'),
48+
path(
49+
'descriptors/', views.DescriptorListView.as_view(),
50+
name='descriptor_list'),
51+
path(
52+
'descriptors/<slug:slug>/', views.DescriptorDetailView.as_view(),
53+
name='descriptor_detail'),
54+
path(
55+
'equipment/', views.EquipmentListView.as_view(),
56+
name='equipment_list'),
57+
path(
58+
'foci/', views.FocusListView.as_view(),
59+
name='focus_list'),
60+
path(
61+
'foci/<slug:slug>/', views.FocusDetailView.as_view(),
62+
name='focus_detail'),
63+
path(
64+
'skills/', views.SkillListView.as_view(),
65+
name='skill_list'),
66+
path(
67+
'types/', views.TypeListView.as_view(),
68+
name='type_list'),
69+
path(
70+
'types/<slug:slug>/', views.TypeDetailView.as_view(),
71+
name='type_detail'),
2972
]

numenera/views.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from django.urls import reverse
66
from django.views import generic
77

8-
from .models import Ability, Descriptor, Equipment, Focus, Skill, Type, Character, Cypher, Artifact
8+
from .models import Ability, Descriptor, Equipment, Focus, Skill, Type, Character, Cypher, Artifact, Creature
99

1010
BASE_LOGIN_URL = '/admin/login/'
1111

@@ -78,6 +78,17 @@ class CharacterDetailView(LoginRequiredMixin, generic.DetailView):
7878
model = Character
7979
template_name = 'numenera/character_detail.html'
8080

81+
class CreatureListView(LoginRequiredMixin, generic.ListView):
82+
login_url = BASE_LOGIN_URL
83+
model = Creature
84+
template_name = 'numenera/creature_list.html'
85+
86+
87+
class CreatureDetailView(LoginRequiredMixin, generic.DetailView):
88+
login_url = BASE_LOGIN_URL
89+
model = Creature
90+
template_name = 'numenera/creature_detail.html'
91+
8192
class CypherListView(LoginRequiredMixin, generic.ListView):
8293
login_url = BASE_LOGIN_URL
8394
model = Cypher
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{% extends "cyphercore/base_creature_detail.html" %}
2+
{% load static %}
3+
{% block title %}The Strange{% endblock %}
4+
{% block subtitle %}{{ creature.name }}{% endblock %}
5+
{% block custom_css %}
6+
<link rel="stylesheet" type="text/css" href="{% static 'strange/css/custom.css' %}" />
7+
{% endblock %}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{% extends "cyphercore/base_creature_list.html" %}
2+
{% load static %}
3+
{% block title %}The Strange{% endblock %}
4+
{% block subtitle %}Creatures{% endblock %}
5+
{% block header_text %}The Strange: Creature{% endblock %}
6+
{% block custom_css %}
7+
<link
8+
rel="stylesheet" type="text/css"
9+
href="{% static 'strange/css/custom.css' %}"
10+
/>
11+
{% endblock %}

0 commit comments

Comments
 (0)