Skip to content

Commit fd4bc3f

Browse files
Michael BirdMichael Bird
authored andcommitted
Added global attacks for strange app. Added link to Admin from index.
1 parent 568e521 commit fd4bc3f

File tree

9 files changed

+115
-7
lines changed

9 files changed

+115
-7
lines changed

cyphercore/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,8 @@ class Character(baseCharacter):
428428
equipment = models.ManyToManyField(Equipment, through='CharacterEquipment')
429429
cyphers = models.ManyToManyField(Cypher, through='CharacterCypher')
430430
artifacts = models.ManyToManyField(Artifact, through='CharacterArtifact')
431+
def get_absolute_url(self):
432+
return "/strange/characters/%s/" % self.slug
431433

432434
class CharacterAbility(baseCharacterAbility):
433435
character = models.ForeignKey(Character, on_delete=models.CASCADE)

cyphercore/templates/cyphercore/base_character_detail.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ <h2>Advancement</h2>
317317
<!-- Attacks -->
318318
{% if character.attack_set.all %}
319319
<section id="attacks" class="avoid-break">
320-
<h2>Attacks</h2>
320+
{% block attacks_header %}<h2>Attacks</h2>{% endblock %}
321321
{% for item in character.attack_set.all %}
322322
{% block attack_item %}<span class="bubble-item">{{ item.name }} (Mod: {{ item.modifier }}, Dmg: {{ item.damage }})</span>{% endblock %}
323323
{% endfor %}

numenera/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ class Character(baseCharacter):
4949
equipment = models.ManyToManyField(Equipment, through='CharacterEquipment')
5050
cyphers = models.ManyToManyField(Cypher, through='CharacterCypher')
5151
artifacts = models.ManyToManyField(Artifact, through='CharacterArtifact')
52+
def get_absolute_url(self):
53+
return "/strange/characters/%s/" % self.slug
5254

5355
class CharacterAbility(baseCharacterAbility):
5456
character = models.ForeignKey(Character, on_delete=models.CASCADE)

strange/admin.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def edit_link(self, instance):
1313
else:
1414
return ''
1515

16-
from .models import Sourcebook, Descriptor, Type, Focus, Ability, Skill, Equipment, Cypher, Artifact, FocusAbility, TypeAbility, Character, CharacterAbility, CharacterSkill, CharacterEquipment, CharacterCypher, CharacterArtifact, Attack, Recursion, RecursionAbility, RecursionSkill
16+
from .models import Sourcebook, Descriptor, Type, Focus, Ability, Skill, Equipment, Cypher, Artifact, FocusAbility, TypeAbility, Character, CharacterAbility, CharacterSkill, CharacterEquipment, CharacterCypher, CharacterArtifact, Attack, Recursion, RecursionAbility, RecursionSkill, RecursionAttack
1717

1818
class SourcebookAdmin(admin.ModelAdmin):
1919
list_display = ('name',)
@@ -115,6 +115,11 @@ class AttackInline(admin.TabularInline):
115115
extra = 0
116116
fields = ('name', 'modifier', 'damage')
117117

118+
class RecursionAttackInline(admin.TabularInline):
119+
model = RecursionAttack
120+
extra = 0
121+
fields = ('name', 'modifier', 'damage')
122+
118123
class CharacterEquipmentInline(admin.TabularInline):
119124
model = CharacterEquipment
120125
autocomplete_fields = ['equipment']
@@ -169,7 +174,7 @@ class CharacterAdmin(admin.ModelAdmin):
169174
('DAMAGE TRACK', {'fields': [('recovery_roll', 'one_action', 'ten_minutes', 'one_hour', 'ten_hours', 'impaired', 'debilitated')]}),
170175
('ADVANCEMENT', {'fields': [('tier_1_edge', 'tier_1_effort', 'tier_1_pools', 'tier_1_skills', 'tier_1_other', 'tier_2_edge', 'tier_2_effort', 'tier_2_pools', 'tier_2_skills', 'tier_2_other'), ('tier_3_edge', 'tier_3_effort', 'tier_3_pools', 'tier_3_skills', 'tier_3_other', 'tier_4_edge', 'tier_4_effort', 'tier_4_pools', 'tier_4_skills', 'tier_4_other'), ('tier_5_edge', 'tier_5_effort', 'tier_5_pools', 'tier_5_skills', 'tier_5_other', 'tier_6_edge', 'tier_6_effort', 'tier_6_pools', 'tier_6_skills', 'tier_6_other')]}),
171176
]
172-
inlines = [CharacterAbilitiesInline, CharacterSkillsInline, CharacterCyphersInline, RecursionsInline]
177+
inlines = [CharacterAbilitiesInline, AttackInline, CharacterSkillsInline, CharacterCyphersInline, RecursionsInline]
173178
list_display = ('name', 'descriptor', 'type', 'tier', 'slug')
174179
prepopulated_fields = {'slug': ('name',)}
175180
search_fields = ['name']
@@ -189,7 +194,7 @@ class RecursionAdmin(admin.ModelAdmin):
189194
('RECURSION DEFINITION', {'fields': [('name', 'character', 'focus'), 'notes']}),
190195
('STATS', {'fields': [('armor', 'money'), ('might_pool_adjust', 'might_edge_adjust'), ('speed_pool_adjust', 'speed_edge_adjust'), ('intellect_pool_adjust', 'intellect_edge_adjust')]}),
191196
]
192-
inlines = [RecursionAbilitiesInline, AttackInline, CharacterEquipmentInline, RecursionSkillsInline, CharacterArtifactsInline]
197+
inlines = [RecursionAbilitiesInline, RecursionAttackInline, CharacterEquipmentInline, RecursionSkillsInline, CharacterArtifactsInline]
193198
list_display = ('character', 'name')
194199
readonly_fields = ('name', 'character', 'focus', )
195200
search_fields = ['name', 'character']
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Generated by Django 2.1 on 2018-08-19 04:08
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('strange', '0033_merge_20180819_0355'),
11+
]
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name='CharacterAttack',
16+
fields=[
17+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18+
('name', models.CharField(max_length=50)),
19+
('modifier', models.IntegerField(default=0)),
20+
('damage', models.IntegerField(default=0)),
21+
('character', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='strange.Character')),
22+
],
23+
options={
24+
'ordering': ['name'],
25+
},
26+
),
27+
migrations.AlterModelOptions(
28+
name='attack',
29+
options={'ordering': ['name']},
30+
),
31+
]
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Generated by Django 2.1 on 2018-08-19 04:10
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('strange', '0034_auto_20180819_0408'),
11+
]
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name='RecursionAttack',
16+
fields=[
17+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18+
('name', models.CharField(max_length=50)),
19+
('modifier', models.IntegerField(default=0)),
20+
('damage', models.IntegerField(default=0)),
21+
('recursion', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='strange.Recursion')),
22+
],
23+
options={
24+
'ordering': ['name'],
25+
},
26+
),
27+
migrations.RemoveField(
28+
model_name='characterattack',
29+
name='character',
30+
),
31+
migrations.RemoveField(
32+
model_name='attack',
33+
name='recursion',
34+
),
35+
migrations.AddField(
36+
model_name='attack',
37+
name='character',
38+
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='strange.Character'),
39+
preserve_default=False,
40+
),
41+
migrations.DeleteModel(
42+
name='CharacterAttack',
43+
),
44+
]

strange/models.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ class Character(baseCharacter):
4747
abilities = models.ManyToManyField(Ability, through='CharacterAbility')
4848
skills = models.ManyToManyField(Skill, through='CharacterSkill')
4949
cyphers = models.ManyToManyField(Cypher, through='CharacterCypher')
50+
def get_absolute_url(self):
51+
return "/strange/characters/%s/" % self.slug
5052

5153
class CharacterAbility(baseCharacterAbility):
5254
class Meta:
@@ -94,7 +96,14 @@ class Meta:
9496

9597
class Attack(baseAttack):
9698
class Meta:
97-
ordering = ['recursion__name', 'name']
99+
ordering = ['name']
100+
verbose_name = 'Global Attack'
101+
verbose_name_plural = 'Global Attacks'
102+
character = models.ForeignKey(Character, on_delete=models.CASCADE)
103+
104+
class RecursionAttack(baseAttack):
105+
class Meta:
106+
ordering = ['name']
98107
recursion = models.ForeignKey(Recursion, on_delete=models.CASCADE)
99108

100109
class CharacterCypher(baseCharacterCypher):

strange/templates/strange/character_detail.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
{% endblock %}
2020
{% block recursable_stats %}{% endblock %}
2121
{% block focus_abilities %}{% endblock %}
22+
{% block attacks_header %}<h2>Global Attacks</h2>{% endblock %}
2223
{% block abilities_header %}<h2>Global Abilities</h2>{% endblock %}
2324
{% block skills_header %}<h2>Global Skills</h2>{% endblock %}
2425
{% block recursions %}
@@ -99,10 +100,10 @@ <h1>Recursion: {{ recursion.name }}</h1>
99100
<hr />
100101
</div>
101102
</section>
102-
{% if recursion.attack_set.all %}
103+
{% if recursion.recursionattack_set.all %}
103104
<section class="recursion-attacks" class="avoid-break">
104105
<h2>Attacks</h2>
105-
{% for item in recursion.attack_set.all %}
106+
{% for item in recursion.recursionattack_set.all %}
106107
{% block attack_item %}<span class="bubble-item">{{ item.name }} (Mod: {{ item.modifier }}, Dmg: {{ item.damage }})</span>{% endblock %}
107108
{% endfor %}
108109
<hr />

templates/index.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
<title>Cypher System</title>
55
<meta charset="utf-8">
66
<style>
7+
a {
8+
color: darkgray;
9+
text-decoration: none;
10+
}
711
hr {
812
border-top: 1px solid #E1E1E1;
913
width: 80%;
@@ -13,6 +17,15 @@
1317
margin: 50px auto;
1418
max-width: 500px;
1519
}
20+
#admin {
21+
display: block;
22+
font-family: monospace;
23+
font-size: 2em;
24+
margin: 0 auto;
25+
text-align: center;
26+
text-transform: uppercase;
27+
width: 100%;
28+
}
1629
</style>
1730
</head>
1831
<body>
@@ -22,5 +35,6 @@
2235
<hr />
2336
<a href="strange/"><img src="{% static 'strange/images/logo.jpg' %}" alt="Strange" class="center" /></a>
2437
<hr />
38+
<div id="admin"><a href="admin/">Admin</a></div>
2539
</body>
2640
</html>

0 commit comments

Comments
 (0)