from models import get_status_string
from regtypes import confirm_special_reg_type, validate_special_reg_type
from jinjafunc import render_jinja_conference_response, JINJA_TEMPLATE_ROOT
+from backendviews import get_authenticated_conference
from postgresqleu.util.decorators import user_passes_test_or_error
from postgresqleu.util.random import generate_random_token
return render_conference_response(request, conference, 'schedule', 'confreg/schedule.html', _scheduledata(request, conference))
-@login_required
def schedulejson(request, confname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=confname)
- else:
- conference = get_object_or_404(Conference, urlname=confname, administrators=request.user)
+ conference = get_authenticated_conference(request, confname)
return HttpResponse(json.dumps(_scheduledata(request, conference),
cls=JsonSerializer,
'series': series,
})
-@login_required
@transaction.atomic
def createvouchers(request, confname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=confname)
- else:
- conference = get_object_or_404(Conference, urlname=confname, administrators=request.user)
+ conference = get_authenticated_conference(request, confname)
# Creation of pre-paid vouchers for conference registrations
if request.method == 'POST':
'breadcrumbs': (('/events/admin/{0}/prepaid/list/'.format(conference.urlname), 'Prepaid vouchers'),),
})
-@login_required
def listvouchers(request, confname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=confname)
- else:
- conference = get_object_or_404(Conference, urlname=confname, administrators=request.user)
+ conference = get_authenticated_conference(request, confname)
batches = PrepaidBatch.objects.select_related('regtype').filter(conference=conference).prefetch_related('prepaidvoucher_set')
'batches': batches,
})
-@login_required
def viewvouchers(request, confname, batchid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=confname)
- else:
- conference = get_object_or_404(Conference, urlname=confname, administrators=request.user)
+ conference = get_authenticated_conference(request, confname)
batch = get_object_or_404(PrepaidBatch, conference=conference, pk=batchid)
vouchers = batch.prepaidvoucher_set.all()
'breadcrumbs': (('/events/admin/{0}/prepaid/list/'.format(conference.urlname), 'Prepaid vouchers'),),
})
-@login_required
@transaction.atomic
def delvouchers(request, confname, batchid, voucherid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=confname)
- else:
- conference = get_object_or_404(Conference, urlname=confname, administrators=request.user)
+ conference = get_authenticated_conference(request, confname)
batch = get_object_or_404(PrepaidBatch, conference=conference, pk=batchid)
voucher = get_object_or_404(PrepaidVoucher, batch=batch, pk=voucherid)
'vouchers': vouchers,
})
-@login_required
def emailvouchers(request, confname, batchid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=confname)
- else:
- conference = get_object_or_404(Conference, urlname=confname, administrators=request.user)
+ conference = get_authenticated_conference(request, confname)
batch = PrepaidBatch.objects.get(pk=batchid)
vouchers = batch.prepaidvoucher_set.all()
'changes': changes,
})
-@login_required
def reports(request, confname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=confname)
- else:
- conference = get_object_or_404(Conference, urlname=confname, administrators=request.user)
+ conference = get_authenticated_conference(request, confname)
# Include information for the advanced reports
from reports import attendee_report_fields, attendee_report_filters
})
-@login_required
def advanced_report(request, confname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=confname)
- else:
- conference = get_object_or_404(Conference, urlname=confname, administrators=request.user)
+ conference = get_authenticated_conference(request, confname)
if request.method != "POST":
raise Http404()
return build_attendee_report(conference, request.POST )
-@login_required
def simple_report(request, confname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=confname)
- else:
- conference = get_object_or_404(Conference, urlname=confname, administrators=request.user)
+ conference = get_authenticated_conference(request, confname)
from reports import simple_reports
'past': past,
})
-@login_required
def admin_dashboard_single(request, urlname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
return render(request, 'confreg/admin_dashboard_single.html', {
'c': conference,
'pending_sessions': conditional_exec_to_scalar(conference.scheduleactive, "SELECT EXISTS (SELECT 1 FROM confreg_conferencesession s WHERE s.conference_id=%(confid)s AND s.status=0)", {'confid': conference.id}),
})
-@login_required
def admin_registration_dashboard(request, urlname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
curs = connection.cursor()
'tables': tables,
})
-@login_required
def admin_registration_list(request, urlname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
skey = request.GET.get('sort', '-date')
if skey[0] == '-':
'breadcrumbs': (('/events/admin/{0}/regdashboard/'.format(urlname), 'Registration dashboard'),),
})
-@login_required
def admin_registration_single(request, urlname, regid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
reg = get_object_or_404(ConferenceRegistration, id=regid, conference=conference)
),
})
-@login_required
@transaction.atomic
def admin_registration_cancel(request, urlname, regid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
reg = get_object_or_404(ConferenceRegistration, id=regid, conference=conference)
'reg': reg,
})
-@login_required
@transaction.atomic
def admin_waitlist(request, urlname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
if conference.attendees_before_waitlist <= 0:
return render(request, 'confreg/admin_waitlist_inactive.html', {
'form': form,
})
-@login_required
@transaction.atomic
def admin_waitlist_cancel(request, urlname, wlid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
wl = get_object_or_404(RegistrationWaitlistEntry, pk=wlid, registration__conference=conference)
reg = wl.registration
return HttpResponseRedirect("../../")
-@login_required
@transaction.atomic
def admin_attendeemail(request, urlname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
mails = AttendeeMail.objects.filter(conference=conference)
'form': form,
})
-@login_required
def admin_attendeemail_view(request, urlname, mailid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
mail = get_object_or_404(AttendeeMail, conference=conference, pk=mailid)
'breadcrumbs': (('/events/admin/{0}/mail/'.format(conference.urlname), 'Attendee emails'), ),
})
-@login_required
@transaction.atomic
def session_notify_queue(request, urlname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
notifysessions = ConferenceSession.objects.filter(conference=conference).exclude(status=F('lastnotifiedstatus'))
'notifysessions': notifysessions,
})
-@login_required
@transaction.atomic
def transfer_reg(request, urlname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
def _make_transfer(fromreg, toreg):
yield u"Initiating transfer from %s to %s" % (fromreg.fullname, toreg.fullname)
from postgresqleu.confreg.models import Conference, ConferenceRegistration
from postgresqleu.confreg.views import render_conference_response
+from postgresqleu.confreg.backendviews import get_authenticated_conference
from postgresqleu.util.db import exec_to_scalar, exec_to_list
'diff': diff,
})
-@login_required
def admin(request, urlname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
pages = Wikipage.objects.filter(conference=conference)
'pages': pages,
})
-@login_required
@transaction.atomic
def admin_edit_page(request, urlname, pageid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
if pageid != 'new':
page = get_object_or_404(Wikipage, conference=conference, pk=pageid)
'form': form,
})
-@login_required
def signup_admin(request, urlname):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
signups = Signup.objects.filter(conference=conference)
'signups': signups,
})
-@login_required
@transaction.atomic
def signup_admin_edit(request, urlname, signupid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
if signupid != 'new':
signup = get_object_or_404(Signup, conference=conference, pk=signupid)
})
-@login_required
@transaction.atomic
def signup_admin_sendmail(request, urlname, signupid):
- if request.user.is_superuser:
- conference = get_object_or_404(Conference, urlname=urlname)
- else:
- conference = get_object_or_404(Conference, urlname=urlname, administrators=request.user)
+ conference = get_authenticated_conference(request, urlname)
signup = get_object_or_404(Signup, conference=conference, pk=signupid)