]> git.parisson.com Git - teleforma.git/commitdiff
Minor fixes
authorGael Le Mignot <gael@pilotsystems.net>
Wed, 19 Sep 2018 13:05:34 +0000 (15:05 +0200)
committerGael Le Mignot <gael@pilotsystems.net>
Wed, 19 Sep 2018 13:05:34 +0000 (15:05 +0200)
teleforma/admin.py
teleforma/templates/teleforma/appointments.html
teleforma/views/appointment.py

index 139c0b2737a7566a17c5f64cbcdcf8ffb9238c9c..a926f5fe0b9a63c3b1fc3b95841ca5db2aa8894e 100644 (file)
@@ -212,13 +212,20 @@ class AppointmentAdmin(admin.ModelAdmin):
         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"
index 309247c33d9027c3f7e44c3fb2f93df14efb94dc..39eed1db4d154beaaa5f7528942add453ccbad8e 100644 (file)
                                                             <button type="submit">Réserver</button>
                                                         </form>
                                                     {% else %}
-                                                        <strong>Reservé</strong>
+                                                        <strong>Réservé</strong>
                                                     {% endif %}
                                                 </td>
                                             {% endif %}
index 269a8125a92a97b539fc4fe222621c0d7945deea..ade519fe71da0f721eb1cdf475e13136b54da3e4 100644 (file)
@@ -25,8 +25,11 @@ class Appointments(View):
         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
 
@@ -139,14 +142,16 @@ class Appointments(View):
 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)