feat(members/trainings): add attendance certificate field (#137)

closes #132

Reviewed-on: #137
Reviewed-by: Christian Merten <christian@merten.dev>
Co-authored-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
Co-committed-by: marius.klein <marius.klein@alpenverein-heidelberg.de>
pull/138/head
marius.klein 10 months ago committed by Christian Merten
parent 84f28b0786
commit 2a0905469d

@ -108,10 +108,10 @@ class PermissionOnMemberInline(admin.StackedInline):
class TrainingOnMemberInline(CommonAdminInlineMixin, admin.TabularInline):
model = MemberTraining
formfield_overrides = {
TextField: {'widget': Textarea(attrs={'rows': 1, 'cols': 40})}
TextField: {'widget': Textarea(attrs={'rows': 1, 'cols': 25})}
}
ordering = ("date",)
extra = 0
extra = 1
class EmergencyContactInline(CommonAdminInlineMixin, admin.TabularInline):

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-11 23:51+0100\n"
"POT-Creation-Date: 2025-02-24 23:22+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -1138,6 +1138,10 @@ msgstr "Teilgenommmen"
msgid "Passed"
msgstr "Bestanden"
#: members/models.py
msgid "certificate of attendance"
msgstr "Teilnahmebestätigung"
#: members/models.py
msgid "Training"
msgstr "Fortbildung"
@ -1713,7 +1717,7 @@ msgstr "Registrierung fehlgeschlagen"
msgid "Registration"
msgstr "Registrierung"
#: members/templates/members/leave_waitinglist.html
#: members/templates/members/leave_waitinglist.html members/tests.py
msgid "Leave waitinglist"
msgstr "Warteliste verlassen"
@ -1723,14 +1727,14 @@ msgid ""
"you need to requeue if you change your mind later."
msgstr ""
"Bist du sicher, dass du die Warteliste verlassen möchtest? Dies kann nicht "
"rückgängig gemacht werden. Falls du später wieder der Warteliste beitreten möchtest, "
"musst du dich neu registrieren."
"rückgängig gemacht werden. Falls du später wieder der Warteliste beitreten "
"möchtest, musst du dich neu registrieren."
#: members/templates/members/leave_waitinglist.html
msgid "Yes, leave the waitinglist"
msgstr "Ja, Warteliste verlassen"
#: members/templates/members/leave_waitinglist_success.html
#: members/templates/members/leave_waitinglist_success.html members/tests.py
msgid "Left waitinglist"
msgstr "Warteliste verlassen"

@ -0,0 +1,20 @@
# Generated by Django 4.0.1 on 2025-02-25 06:34
from django.db import migrations
import utils
class Migration(migrations.Migration):
dependencies = [
('members', '0038_alter_invitationtogroup_date_alter_member_created_and_more'),
]
operations = [
migrations.AddField(
model_name='membertraining',
name='certificate',
field=utils.RestrictedFileField(blank=True, upload_to='training_forms', verbose_name='certificate of attendance'),
),
]

@ -1785,7 +1785,15 @@ class MemberTraining(CommonModel):
comments = models.TextField(verbose_name=_('Comments'), blank=True)
participated = models.BooleanField(verbose_name=_('Participated'))
passed = models.BooleanField(verbose_name=_('Passed'))
certificate = RestrictedFileField(verbose_name=_('certificate of attendance'),
upload_to='training_forms',
blank=True,
max_upload_size=5,
content_types=['application/pdf',
'image/jpeg',
'image/png',
'image/gif'])
class Meta(CommonModel.Meta):
verbose_name = _('Training')
verbose_name_plural = _('Trainings')

Loading…
Cancel
Save