writer = csv.writer(response)
writer.writerow(['date', 'creneau', 'nom', 'prenom', 'iej', 'jury'])
+ def csv_encode(item):
+ if isinstance(item, unicode):
+ return item.encode('utf-8')
+ else:
+ return item
+
for app in queryset:
user = app.student
student = user.student.all()[0]
- writer.writerow([
- app.day, app.start, user.last_name, user.first_name, student.iej, app.jury.name
- ])
+ row = [ app.day, app.start, user.last_name, user.first_name, student.iej, app.jury.name ]
+ row = [ csv_encode(col) for col in row ]
+
+ writer.writerow(row)
return response
export_csv.short_description = "Exporter en CSV"
student = user.student.all().count()
if not student:
return HttpResponse('Unauthorized', status=401)
- periods = [ int(p.id) for p in get_periods(user) ]
- if not int(period_id) in periods:
+ period_id = int(period_id)
+ periods = [ p for p in get_periods(user) if int(p.id) == period_id ]
+ if not periods:
+ return HttpResponse('Unauthorized', status=401)
+ if not periods[0].enable_appointment:
return HttpResponse('Unauthorized', status=401)
return
def cancel_appointment(request):
period_id = request.POST['period_id']
appointment_id = request.POST['appointment_id']
- try:
- app = Appointment.objects.get(id=appointment_id)
- except Appointment.DoesNotExist:
- pass
+
+ app = get_object_or_404(Appointment, id=appointment_id)
if app.student != request.user:
return HttpResponse('Unauthorized', status=401)
+ if not app.can_cancel():
+ messages.add_message(request, messages.ERROR, ' Il est trop tard pour annuler ce rendez-vous.')
+ return redirect('teleforma-appointments', period_id=period_id)
+
app.delete()
messages.add_message(request, messages.INFO, 'Votre réservation a été annulé.')
return redirect('teleforma-appointments', period_id=period_id)