|
@@ -1,6 +1,6 @@
|
|
import datetime
|
|
import datetime
|
|
|
|
|
|
-from djangotools.common.types import date_to_string
|
|
|
|
|
|
+from djangotools.common.types import date_to_string, parse_date
|
|
from baby.app.context.base import BaseContextData, UserPrefences
|
|
from baby.app.context.base import BaseContextData, UserPrefences
|
|
from baby.app.models.regle import Regle
|
|
from baby.app.models.regle import Regle
|
|
|
|
|
|
@@ -9,24 +9,57 @@ class EditData(BaseContextData):
|
|
page = "edit"
|
|
page = "edit"
|
|
|
|
|
|
|
|
|
|
|
|
+ def _send(self, user, debut, status=None, message=None):
|
|
|
|
+ fin = datetime.date(debut.year + 1, 1, 1)
|
|
|
|
+
|
|
|
|
+ regles = Regle.objects.filter(user=user, date__gte=debut, date__lt=fin).order_by("-date")
|
|
|
|
+ return {
|
|
|
|
+ "year": debut.year,
|
|
|
|
+ "dates": [{"date": date_to_string(x.date), "id": x.id} for x in regles],
|
|
|
|
+ "prev": debut.year - 1,
|
|
|
|
+ "next": debut.year + 1,
|
|
|
|
+ "count": len(regles),
|
|
|
|
+ "title": "Editer les cycles",
|
|
|
|
+ "is_post" : message is not None,
|
|
|
|
+ "message" : message,
|
|
|
|
+ "status" : status
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ def _delete(self, user, date):
|
|
|
|
+ debut = datetime.date(date.year, 1 , 1)
|
|
|
|
+ message = f"La règle du {date_to_string(date)} a bien été supprimeé"
|
|
|
|
+ status = True
|
|
|
|
+ parsed_date = parse_date(date)
|
|
|
|
+ regle=None
|
|
|
|
+ try:
|
|
|
|
+ regle = Regle.objects.get(user=user, date=parsed_date)
|
|
|
|
+ except Regle.DoesNotExist:
|
|
|
|
+ message = f"Erreur aucune règle n'est enregistré au {date_to_string(date)}"
|
|
|
|
+ status = False
|
|
|
|
+
|
|
|
|
+ if regle is not None:
|
|
|
|
+ try:
|
|
|
|
+ regle.delete()
|
|
|
|
+ except Exception as err:
|
|
|
|
+ message = f"Impossible de supprimer la règle du {date_to_string(date)} : {err}"
|
|
|
|
+ status = False
|
|
|
|
+
|
|
|
|
+ return self._send(user, debut, status, message)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
def get_context_data(self, request, action_params, **kwargs):
|
|
def get_context_data(self, request, action_params, **kwargs):
|
|
user = request.user
|
|
user = request.user
|
|
debut = datetime.date.today()
|
|
debut = datetime.date.today()
|
|
- if "year" in getattr(request, "GET", {}):
|
|
|
|
- debut =datetime.date(int(request.GET["year"]), 1, 1)
|
|
|
|
- elif "year" in getattr(request, "POST", {}):
|
|
|
|
- debut = datetime.date(int(request.POST["year"]), 1, 1)
|
|
|
|
- else:
|
|
|
|
- debut = datetime.date(debut.year, 1 , 1)
|
|
|
|
|
|
|
|
- fin = datetime.date(debut.year+1, 1, 1)
|
|
|
|
|
|
+ if "delete_date" in getattr(request, "GET", {}):
|
|
|
|
+ return self._delete(user, parse_date(request.GET["delete_date"]))
|
|
|
|
+ else:
|
|
|
|
+ if "year" in getattr(request, "GET", {}):
|
|
|
|
+ debut =datetime.date(int(request.GET["year"]), 1, 1)
|
|
|
|
+ elif "year" in getattr(request, "POST", {}):
|
|
|
|
+ debut = datetime.date(int(request.POST["year"]), 1, 1)
|
|
|
|
+ else:
|
|
|
|
+ debut = datetime.date(debut.year, 1 , 1)
|
|
|
|
|
|
- regles = Regle.objects.filter(user=user, date__gte=debut, date__lt=fin)
|
|
|
|
- return {
|
|
|
|
- "year" : debut.year,
|
|
|
|
- "dates" : [{"date": date_to_string(x.date), "id": x.id} for x in regles],
|
|
|
|
- "prev" : debut.year - 1,
|
|
|
|
- "next" : debut.year + 1,
|
|
|
|
- "count" : len(regles),
|
|
|
|
- "title" : "Editer les cycles"
|
|
|
|
- }
|
|
|
|
|
|
+ return self._send(user, debut)
|