def questions(request): return render_to_response("admin/questions.html", { 'menuitems' : createMenuItems('questions'), 'questions' : Question.objects.all(), 'user' : request.user, 'title' : u"Otázky" } )
def list_users(request, sort): if sort is None: sort = "UID" headers = [u"Login", u"Jméno", u"Nick", u"Mail", u"Telefon", u"Narození", u"UID", u"Heslo"] table = MightyTable(headers) table.setNumeric(u"Narození") table.setNumeric(u"UID") for player in Player.objects.select_related(): record = {} record[u"Login"] = SimpleCell(player.getLogin()) record[u"Jméno"] = SimpleCell(player.getFullName(nick=False)) record[u"Nick"] = SimpleCell(player.getNick()) record[u"Mail"] = SimpleCell(player.getMail()) record[u"Telefon"] = SimpleCell(player.getPhone()) record[u"Narození"] = SimpleCell(player.getBirth()) record[u"UID"] = SimpleCell(player.getUID()) record[u"Heslo"] = URLCell("reset/%s/" % player.getID(), "reset") table.addRecord(record) table.sort(sort) return render_to_response("admin/users.html", { 'menuitems' : createMenuItems('users'), 'table' : table, 'user' : request.user, 'title' : "Uživatelé" } )
def slot_modify(request, eventid, slotid=None): if slotid != 'new': inst = MultiGameSlot.objects.get(id=slotid) form = ActualSlotForm(instance = inst) sgf = SlotForm(slotid) else: sgf = None slotid = None form = ActualSlotForm() if request.method == u'POST': form = ActualSlotForm(request.POST) if form.is_valid(): form.save() request.user.message_set.create(message=u"V eventu %s změněn slot") return HttpResponseRedirect(u'/admin/events/multi/%s/' % eventid ) else: form.initial[u'event'] = eventid form.fields[u'event'].choices = ((eventid,u"LARP"),) return render_to_response(u'admin/slotform.html', {u'form' : form, u'slotform' : sgf, u'slotid' : slotid, u'menuitems' : createMenuItems(), u'eventid' : eventid, u'gamespresent' : GameInSlot.objects.filter(slot=slotid), u'title' : u"Editace slotu", u'user' : request.user}, )
def administrate_games(request): games = Game.objects.all() return render_to_response("admin/games.html", {'games' : games, 'menuitems' : createMenuItems("games"), 'user' : request.user, 'title' : "Hry", })
def show_applied_people_in_slots(request, eventid): event = Event.objects.get(id=eventid) slots = event.multigameslot_set.all() for slot in slots: slot.printify() return render_to_response(u'admin/people_in_slots.html', {u'menuitems' : createMenuItems(), u'title' : u'Sloty v %s' % event.name, u'user' : request.user, u'slots' : slots, u'eventid' : eventid})
def game_modify(request, gameid=None, qmod=False): question_form = None inst = None if gameid != "new": inst = Game.objects.get(id=gameid) questions = Question.objects.all() question_form = QuestionForm() fields = {} our_questions = inst.questionforgame_set for question in questions: fields["%s" % question.id] = BooleanField(label=question.uniq_name, required=False, widget=CheckboxInput) fields["%s_required" % question.id] = BooleanField(label=" %s povinne" % question.uniq_name, required=False, widget=CheckboxInput) if question in [ que.question for que in our_questions.all() ]: fields["%s" % question.id].initial = True if our_questions.get(question=question).required: fields["%s_required" % question.id].initial = True question_form.setFields(fields) if request.method == 'POST': if qmod: form = QuestionForm() fields={} for question in Question.objects.all(): fields["%s" % question.id] = BooleanField(label=question.uniq_name, required=False, widget=CheckboxInput) fields["%s_required" % question.id] = BooleanField(label=" %s povinne" % question.uniq_name, required=False, widget=CheckboxInput) form.setFields(fields) form.setData(request.POST) form.validate(request.POST) if form.is_valid(): form.save(gameid) return HttpResponseRedirect('/admin/games/') else: form = GameForm(request.POST, instance=inst) print "We should end here" if form.is_valid(): form.save() return HttpResponseRedirect('/admin/games/') else: form = GameForm(instance=inst) return render_to_response('admin/gameform.html', {'form': form, 'gameid': gameid, 'menuitems' : createMenuItems(), 'user' : request.user, 'title' : "Editace hry", 'questions' : question_form})
def events(request): return render_to_response(u"admin/events.html", { u'menuitems' : createMenuItems(u'events'), u'events_s' : Event.objects.filter(type=u"single").filter(Q(state="OPEN") | Q(state="CLOSED") | Q(state="CREATED")), u'events_m' : Event.objects.filter(type=u"multi").filter(Q(state="OPEN") | Q(state="CLOSED") | Q(state="CREATED")), u'user' : request.user, u'title' : u"Eventy" } )
def question_edit(request, queid): if request.method == 'POST': form = CreateQuestionForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/admin/questions') else: form = CreateQuestionForm() if queid != "new": form.loadValues(queid) return render_to_response("admin/questionform.html", { 'menuitems' : createMenuItems('questions'), 'user' : request.user, 'title' : u'Změnit otázku', 'form' : form})
def slotregistration_action(request, eventid=None): ids = [] for key in request.POST.keys(): if key[:2] == u"sr": try: ids.append(int(key[2:])) except ValueError: pass filterer = Q(id=None) for id in ids: filterer = filterer | Q(id=id) affected_sgrs = SlotGameRegistration.objects.filter(filterer) if len(affected_sgrs) == 0: return HttpResponseRedirect(u'/admin/events/multi/%s/people_at_slots/' % eventid) if u'unregister_with_mail' in request.POST.keys(): form = ThrowOutForm() form.load(affected_sgrs) return render_to_response(u"admin/throwout.html", {u'form': form, u"menuitems" : createMenuItems(), u'title' : u"Odhlášení účastníků", u'eventid' : eventid, }) elif u'unregister_and_send_mails' in request.POST.keys(): lists = {} for reg in affected_sgrs: email = reg.player.user.email if not lists.has_key(email): lists[email] = [] lists[email].append(u"Akce %s, slot %s, hra %s" % (reg.slot.slot.event.name, reg.slot.slot.name, reg.slot.game.name)) for mail in lists.keys(): message = render_to_string(u'admin/throwout.txt', {u'message' : request.POST[u'mail'], u'games' : lists[mail]}) subject = u"%s - odhlášení z her" % settings.SITE_NAME subject = ''.join(subject.splitlines()) send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [email]) affected_sgrs.delete() elif u'unregister' in request.POST.keys(): affected_sgrs.delete() return HttpResponseRedirect(u'/admin/events/multi/%s/people_at_slots/' % eventid)
def show_applied_people(request, eventid, slotted=False, cvsexport=False, sorted=None): event = Event.objects.get(id=eventid) records = [] table = event.getPeopleTable(qfe=True, qfg=True, slotted=slotted) if sorted: table.sort(sorted) if cvsexport: return HttpResponse(table.asCSV(), mimetype="text/plain") return render_to_response('admin/eventpeople.html', {'menuitems' : createMenuItems(), 'title' : u"Lidé přihlášení na %s" % event.name, 'user' : request.user, 'table' : table, 'event' : event}, )
def slot_details(request, eventid, slotid): game = GameInSlot.objects.get(id=slotid) regs = SlotGameRegistration.objects.filter(slot=game).order_by("player") headlines = [ "Jméno", "Telefon" ] + [ que.question.uniq_name for que in game.game.questionforgame_set.all() ] people = [ reg.player for reg in regs ] people.sort(lambda x,y: cmp(x.surname, y.surname)) rows = [] for person in people: cols = [ " ".join((person.name, person.surname, "".join((u"(" , person.nick , u")")))), person.phone ] registration = SlotGameRegistration.objects.get(slot=game, player=person) for question in game.game.questionforgame_set.all(): answers = registration.answers.filter(question=question.question) cols += [ u",".join( [ ans.answer for ans in answers ]) ] rows.append(cols) return render_to_response(u"admin/slot_details.html", {u"menuitems" : createMenuItems(), u'title' : u"Detaily slotu", u'user' : request.user, u'game' : game, u'rows' : rows, u'headlines' : headlines})
def modify(request, eventid=None, type=u"single", regcreate=None): if type == u"single": Form = SingleEventForm else: Form = MultiEventForm if request.method == u'POST': if regcreate is not None: form = RegistrationForm() fields={} for question in Question.objects.all(): fields[u"%s" % question.id] = BooleanField(label=question.uniq_name, widget=CheckboxInput) fields[u"%s_required" % question.id] = BooleanField(label=u" %s povinné" % question.uniq_name, required=False, widget=CheckboxInput) form.setFields(fields) form.setData(request.POST) form.validate(request.POST) else: form = Form(request.POST) form.save(eventid) if eventid == "new": return HttpResponseRedirect(u'/admin/events/') else: return HttpResponseRedirect(u'/admin/events/%s/%s/' % (type, eventid)) else: form = Form() event = None slots = None reg = None if eventid != u"new": event = Event.objects.get(id=eventid) form.loadValues(event) slots = MultiGameSlot.objects.filter(event=event) questions = Question.objects.all() reg = RegistrationForm() fields = {} our_questions = event.question for question in questions: fields[u"%s" % question.id] = BooleanField(label=question.uniq_name, required=False, widget=CheckboxInput) fields[u"%s_required" % question.id] = BooleanField(label=u" %s povinne" % question.uniq_name, required=False, widget=CheckboxInput) if question in [ que.question for que in our_questions.all() ]: fields[u"%s" % question.id].initial = True if our_questions.get(question=question).required: fields[u"%s_required" % question.id].initial = True reg.setFields(fields) return render_to_response(u'admin/eventform.html', {u'form' : form, u'eventid' : eventid, u'menuitems' : createMenuItems(), u'user' : request.user, u'title' : u"Vlastnosti hry", u'event' : event, u'slots' : slots, u'reg' : reg } )
def overview(request): return render_to_response(u"admin/overview.html", { u'menuitems' : createMenuItems(u"overview"), u'user' : request.user, u'title' : u'Přehled'})