Merge pull request #20 from Schlabonski/member_lists

Member lists
v1-0-stable
Schlabonski 9 years ago committed by GitHub
commit 6a85729f38

@ -9,11 +9,13 @@ from django.http import HttpResponse
from wsgiref.util import FileWrapper
from django import forms
from django.contrib import admin
from django.contrib.admin import DateFieldListFilter
from django.utils.translation import ugettext_lazy as translate
from django.db.models import TextField
from django.forms import Textarea
from .models import Member, Group, MemberList, MemberOnList
from .models import (Member, Group, MemberList, MemberOnList, Klettertreff,
KlettertreffAttendee)
# Register your models here.
@ -53,6 +55,9 @@ class MemberListAdmin(admin.ModelAdmin):
actions = ['convert_to_pdf']
inlines = [MemberOnListInline]
def __init__(self, *args, **kwargs):
super(MemberListAdmin, self).__init__(*args, **kwargs)
def convert_to_pdf(self, request, queryset):
"""Converts a member list to pdf.
@ -114,10 +119,33 @@ class MemberListAdmin(admin.ModelAdmin):
# provide the user with the resulting pdf file
with open('media/memberlists/'+filename_pdf, 'rb') as pdf:
response = HttpResponse(FileWrapper(pdf))#, content='application/pdf')
response['Content-Type'] = 'application/pdf'
response['Content-Disposition'] = 'attachment; filename='+filename_pdf
return response
class KlettertreffAdminForm(forms.ModelForm):
class Meta:
model = Klettertreff
exclude = []
def __init__(self, *args, **kwargs):
super(KlettertreffAdminForm, self).__init__(*args, **kwargs)
self.fields['jugendleiter'].queryset = Member.objects.filter(group__name='Jugendleiter')
class KlettertreffAttendeeInline(admin.StackedInline):
model = KlettertreffAttendee
extra = 0
class KlettertreffAdmin(admin.ModelAdmin):
form = KlettertreffAdminForm
exclude = []
inlines = [KlettertreffAttendeeInline]
list_display = ['__str__', 'date', 'get_jugendleiter']
list_filter = [('date', DateFieldListFilter)]
admin.site.register(Member, MemberAdmin)
admin.site.register(Group, GroupAdmin)
admin.site.register(MemberList, MemberListAdmin)
admin.site.register(Klettertreff, KlettertreffAdmin)

@ -72,3 +72,30 @@ class MemberOnList(models.Model):
member = models.ForeignKey(Member)
memberlist = models.ForeignKey(MemberList)
comments = models.TextField(_('Comment'), default='')
class Klettertreff(models.Model):
""" This model represents a Klettertreff event.
A Klettertreff can take a date, location, Jugendleiter, attending members as
input.
"""
date = models.DateField(_('Date'), default=datetime.today)
location = models.CharField(_('Location'), default='', max_length=60)
jugendleiter = models.ManyToManyField(Member)
def __str__(self):
return self.location + ' ' + self.date.strftime('%d.%m.%Y')
def get_jugendleiter(self):
jl_string = ''.join(j.name + ',\n' for j in self.jugendleiter.all())
jl_string = jl_string[:-2]
return jl_string
get_jugendleiter.short_description = _('Jugendleiter')
class KlettertreffAttendee(models.Model):
"""Connects members to Klettertreffs."""
member = models.ForeignKey(Member)
klettertreff = models.ForeignKey(Klettertreff)

Loading…
Cancel
Save