Skip to content

Commit c740ec9

Browse files
authored
Merge pull request #76 from coredump-ch/member-key-managment
Member key managment
2 parents c8f3e57 + f244a35 commit c740ec9

File tree

8 files changed

+131
-8
lines changed

8 files changed

+131
-8
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ User erstellen:
6666
Testdaten laden (optional):
6767

6868
./manage.py loaddata --app crowdfund testdata
69+
./manage.py loaddata --app memberdb testdata
6970

7071
Entwicklungsserver starten:
7172

interna/front/templates/front/base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<span class="icon-bar"></span>
3131
<span class="icon-bar"></span>
3232
</button>
33-
<a class="navbar-brand" href="/">coredump</a>
33+
<a class="navbar-brand" href="/">Coredump Interna</a>
3434
</div>
3535
{% block navigation %}
3636
<div class="navbar-collapse collapse">

interna/front/templates/front/members.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ <h3 class="display-inline-block">Aktivmitglieder ({{ active_memberships|length }
3838
<th>Email</th>
3939
<th>Natel</th>
4040
<th>Wohnort</th>
41-
<th>Twitter</th>
4241
<th>Github</th>
42+
<th>Schlüssel</th>
43+
<th>Safe-Zugang</th>
4344
<th>CCC</th>
4445
<th>Mitglied seit</th>
4546
</thead>
@@ -52,8 +53,9 @@ <h3 class="display-inline-block">Aktivmitglieder ({{ active_memberships|length }
5253
<td>{{ member.email|urlize }}</td>
5354
<td>{{ member.phone }}</td>
5455
<td>{{ member.city }}</td>
55-
<td>{% if member.twitter %}<a href="https://twitter.com/{{ member.twitter }}">{{ member.twitter }}</a>{% endif %}</td>
5656
<td>{% if member.github %}<a href="https://github.com/{{ member.github }}">{{ member.github }}</a>{% endif %}</td>
57+
<td>{{ member.key_number|default:"-" }}</td>
58+
<td>{{ member.get_key_safe_display|default:"-" }}</td>
5759
<td>{{ membership.ccc|yesno:"Ja,Nein" }}</td>
5860
<td>{{ membership.start|date:"Y-m-d" }}</td>
5961
</tr>

interna/memberdb/admin.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55

66
class MemberAdmin(admin.ModelAdmin):
7-
list_display = ('name', 'email', 'city', 'twitter', 'github')
8-
search_fields = ('name', 'pk', 'email', 'phone', 'city', 'twitter', 'github')
9-
list_filter = ('city',)
7+
list_display = ('name', 'email', 'city', 'github', 'key_number', 'key_safe')
8+
search_fields = ('name', 'pk', 'email', 'phone', 'city', 'github', 'key_number', 'key_safe')
9+
list_filter = ('city', 'key_safe')
1010

1111

1212
class MembershipAdmin(admin.ModelAdmin):
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
[
2+
{
3+
"model": "memberdb.member",
4+
"pk": 1,
5+
"fields": {
6+
"name": "Donald Knuth",
7+
"email": "[email protected]",
8+
"phone": "+41 79 000 11 22",
9+
"city": "Stanford",
10+
"key_safe": "app"
11+
}
12+
},
13+
{
14+
"model": "memberdb.member",
15+
"pk": 2,
16+
"fields": {
17+
"name": "Ada Lovelace",
18+
"email": "[email protected]",
19+
"phone": "+41 78 000 33 44",
20+
"city": "London",
21+
"key_number": "13",
22+
"key_safe": "code"
23+
}
24+
},
25+
{
26+
"model": "memberdb.member",
27+
"pk": 3,
28+
"fields": {
29+
"name": "Marvin Minsky",
30+
"email": "[email protected]",
31+
"phone": "+41 77 000 55 66",
32+
"city": "Massachusetts"
33+
}
34+
},
35+
{
36+
"model": "memberdb.membership",
37+
"pk": 1,
38+
"fields": {
39+
"Member": 1,
40+
"start": "2017-08-20",
41+
"category": 2,
42+
"ccc": false
43+
}
44+
},
45+
{
46+
"model": "memberdb.membership",
47+
"pk": 2,
48+
"fields": {
49+
"Member": 2,
50+
"start": "2020-08-20",
51+
"category": 1,
52+
"ccc": true
53+
}
54+
},
55+
{
56+
"model": "memberdb.membership",
57+
"pk": 3,
58+
"fields": {
59+
"Member": 3,
60+
"start": "2015-08-20",
61+
"end": "2020-08-20",
62+
"category": 1,
63+
"ccc": true
64+
}
65+
}
66+
]
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Generated by Django 4.2.18 on 2025-01-22 12:02
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("memberdb", "0003_remove_member_access_code"),
10+
]
11+
12+
operations = [
13+
migrations.RemoveField(
14+
model_name="member",
15+
name="twitter",
16+
),
17+
]
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Generated by Django 4.2.18 on 2025-01-22 12:12
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("memberdb", "0004_remove_member_twitter"),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name="member",
15+
name="key_number",
16+
field=models.CharField(
17+
blank=True, help_text="Schlüsselnummer", max_length=100
18+
),
19+
),
20+
migrations.AddField(
21+
model_name="member",
22+
name="key_safe",
23+
field=models.CharField(
24+
blank=True,
25+
choices=[("app", "App"), ("code", "Code")],
26+
help_text="Art des Schlüsselsafe-Zugriffs",
27+
max_length=100,
28+
),
29+
),
30+
]

interna/memberdb/models.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,23 @@
77

88
class Member(models.Model):
99
"""A member of the association."""
10+
class SafeAccessType(models.TextChoices):
11+
APP = 'app', 'App'
12+
CODE = 'code', 'Code'
13+
1014
id = models.AutoField(primary_key=True)
1115
name = models.CharField(max_length=100)
1216
email = models.EmailField(unique=True)
1317
phone = models.CharField(max_length=16, blank=True)
1418
city = models.CharField(max_length=100, blank=True,
1519
help_text='Wohnort')
16-
twitter = models.CharField(max_length=32, blank=True,
17-
help_text='Twitter Benutzername')
1820
github = models.CharField(max_length=32, blank=True,
1921
help_text='Github Benutzername')
22+
key_number = models.CharField(max_length=100, blank=True,
23+
help_text='Schlüsselnummer')
24+
key_safe = models.CharField(max_length=100, blank=True,
25+
choices=SafeAccessType.choices,
26+
help_text='Art des Schlüsselsafe-Zugriffs')
2027

2128
class Meta:
2229
ordering = ('name', 'id')

0 commit comments

Comments
 (0)