From 31f842e0d9e5f2610dde6d5ae3b3706c00a73c49 Mon Sep 17 00:00:00 2001 From: Ambulance Clerc Date: Tue, 10 Oct 2023 13:50:23 +0200 Subject: [PATCH 1/4] Ajout du module comm_op --- Reskreen/settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Reskreen/settings.py b/Reskreen/settings.py index 39d53ee..e20462a 100644 --- a/Reskreen/settings.py +++ b/Reskreen/settings.py @@ -47,6 +47,7 @@ INSTALLED_APPS = [ 'collabs.apps.CollabsConfig', 'mycaldav.apps.CaldavConfig', 'studenteval.apps.StudentevalConfig', + 'comm_op.apps.CommOpConfig', 'custom_admin.apps.CustomAdminConfig', 'rangefilter', 'django.contrib.admin', From 28042c851a7a8b0ce29d89f5e4ca621065443fc6 Mon Sep 17 00:00:00 2001 From: Ambulance Clerc Date: Tue, 10 Oct 2023 13:50:37 +0200 Subject: [PATCH 2/4] Ajout du module comm_op --- comm_op/__init__.py | 0 comm_op/admin.py | 3 +++ comm_op/apps.py | 6 ++++++ comm_op/models.py | 14 ++++++++++++++ comm_op/tests.py | 3 +++ comm_op/views.py | 3 +++ 6 files changed, 29 insertions(+) create mode 100644 comm_op/__init__.py create mode 100644 comm_op/admin.py create mode 100644 comm_op/apps.py create mode 100644 comm_op/models.py create mode 100644 comm_op/tests.py create mode 100644 comm_op/views.py diff --git a/comm_op/__init__.py b/comm_op/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/comm_op/admin.py b/comm_op/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/comm_op/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/comm_op/apps.py b/comm_op/apps.py new file mode 100644 index 0000000..288f5ed --- /dev/null +++ b/comm_op/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class CommOpConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'comm_op' diff --git a/comm_op/models.py b/comm_op/models.py new file mode 100644 index 0000000..5e8504b --- /dev/null +++ b/comm_op/models.py @@ -0,0 +1,14 @@ +from django.db import models + +# Create your models here. +class cr_Category(models.Model): + sName = models.CharField("Désignation", max_length=250) + dtUpdated = models.DateTimeField('date updated', auto_now=True) + dtCreated = models.DateTimeField('date published', auto_now_add=True) + + def __str__(self): + return self.sName + + class Meta: + verbose_name = "catégorie" + verbose_name_plural = "catégories" \ No newline at end of file diff --git a/comm_op/tests.py b/comm_op/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/comm_op/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/comm_op/views.py b/comm_op/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/comm_op/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. From 7d37cfd1df23421db88058a294bf7f4ccdc7044d Mon Sep 17 00:00:00 2001 From: Ambulance Clerc Date: Tue, 10 Oct 2023 18:29:45 +0200 Subject: [PATCH 3/4] Ajout du module comm_op --- comm_op/admin.py | 39 +++++++++++++++++++++++++++++++++++++++ comm_op/apps.py | 1 + comm_op/models.py | 21 ++++++++++++++++----- 3 files changed, 56 insertions(+), 5 deletions(-) diff --git a/comm_op/admin.py b/comm_op/admin.py index 8c38f3f..f490989 100644 --- a/comm_op/admin.py +++ b/comm_op/admin.py @@ -1,3 +1,42 @@ from django.contrib import admin +from comm_op.models import comm_opMessage +from django.contrib.auth.models import User # Register your models here. + +@admin.register(comm_opMessage) +class MessageAdmin(admin.ModelAdmin): + always_show_username = True + fieldsets = [ + (None, {'fields': ['sKey','sTitle','sDesc']}), + ('Date information', {'fields': ['dtStart','dtEnd']}), + ('Auteur', {'fields': ['Author']}), + ] + + list_display = ('sKey', 'sTitle', 'dtStart', 'dtEnd', 'sAuthor', 'bDone') + #list_filter = ['pub_date'] + #search_fields = ['question_txt'] + + def save_model(self, request, obj, form, change): + obj.sAuthor = obj.Author.first_name + " " + obj.Author.last_name + obj.sAuthor = obj.Author.first_name + " " + obj.Author.last_name + obj.save() + + def formfield_for_foreignkey(self, db_field, request=None, **kwargs): + field = super(MessageAdmin, self).formfield_for_foreignkey( db_field, request, **kwargs) + if db_field.remote_field.model == User: + field.label_from_instance = self.get_user_label + return field + + def formfield_for_manytomany(self, db_field, request=None, **kwargs): + field = super(MessageAdmin, self).formfield_for_manytomany( db_field, request, **kwargs) + if db_field.remote_field.model == User: + field.label_from_instance = self.get_user_label + return field + + def get_user_label(self, user): + name = user.get_full_name() + username = user.username + if not self.always_show_username: + return name or username + return (name and name != username and '%s (%s)' % (name, username) or username) diff --git a/comm_op/apps.py b/comm_op/apps.py index 288f5ed..5f76ac8 100644 --- a/comm_op/apps.py +++ b/comm_op/apps.py @@ -4,3 +4,4 @@ from django.apps import AppConfig class CommOpConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'comm_op' + verbose_name = "Référent journalier" diff --git a/comm_op/models.py b/comm_op/models.py index 5e8504b..43a9dc2 100644 --- a/comm_op/models.py +++ b/comm_op/models.py @@ -1,14 +1,25 @@ from django.db import models +from django.conf import settings +from django.utils import timezone # Create your models here. -class cr_Category(models.Model): - sName = models.CharField("Désignation", max_length=250) +class comm_opMessage(models.Model): + sKey = models.CharField("Clé d'identification", max_length=100) + sTitle = models.CharField('Titre', max_length=250) + sDesc = models.TextField('Description') + dtStart = models.DateField("Date de début", default=timezone.now) + dtEnd = models.DateField("Date de fin", blank=True, null=True) + bDone = models.BooleanField("Effectuée", default=False) + sAuthor = models.CharField("Auteur", max_length=120) + Author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name="Auteur", on_delete=models.DO_NOTHING) dtUpdated = models.DateTimeField('date updated', auto_now=True) dtCreated = models.DateTimeField('date published', auto_now_add=True) + + def __str__(self): - return self.sName + return self.sKey + " -- " + self.sTitle class Meta: - verbose_name = "catégorie" - verbose_name_plural = "catégories" \ No newline at end of file + verbose_name = "Communication importante" + verbose_name_plural = "Communications importantes" \ No newline at end of file From 808dfd9ed3e66205544c630586641f506af900b1 Mon Sep 17 00:00:00 2001 From: Ambulance Clerc Date: Wed, 11 Oct 2023 11:44:20 +0200 Subject: [PATCH 4/4] Ajout du module comm_op dans reskreen --- comm_op/admin.py | 2 +- comm_op/models.py | 2 ++ mycaldav/templates/op/op_view.html | 5 ++-- mycaldav/views.py | 40 ++++++++++++++++++++++++++---- 4 files changed, 40 insertions(+), 9 deletions(-) diff --git a/comm_op/admin.py b/comm_op/admin.py index f490989..36ee0c0 100644 --- a/comm_op/admin.py +++ b/comm_op/admin.py @@ -8,7 +8,7 @@ from django.contrib.auth.models import User class MessageAdmin(admin.ModelAdmin): always_show_username = True fieldsets = [ - (None, {'fields': ['sKey','sTitle','sDesc']}), + (None, {'fields': ['sKey','sTitle','sDesc', 'bDone']}), ('Date information', {'fields': ['dtStart','dtEnd']}), ('Auteur', {'fields': ['Author']}), ] diff --git a/comm_op/models.py b/comm_op/models.py index 43a9dc2..c04aedd 100644 --- a/comm_op/models.py +++ b/comm_op/models.py @@ -1,9 +1,11 @@ from django.db import models from django.conf import settings from django.utils import timezone +import uuid # Create your models here. class comm_opMessage(models.Model): + uuid = models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True) sKey = models.CharField("Clé d'identification", max_length=100) sTitle = models.CharField('Titre', max_length=250) sDesc = models.TextField('Description') diff --git a/mycaldav/templates/op/op_view.html b/mycaldav/templates/op/op_view.html index 0cbbea4..798ca29 100644 --- a/mycaldav/templates/op/op_view.html +++ b/mycaldav/templates/op/op_view.html @@ -12,11 +12,10 @@ {% if task.done %} {{task.key}} {% else %} - {{task.key}} + {{task.key}} {% endif %}
- {{task.str_start_date}} - {{task.str_end_date}}
- {{task.str_start_time}} - {{task.str_end_time}} + {{task.str_start_date}} {% if task.str_end_date != None %}- {{task.str_end_date}} {% endif %}      {% if task.href != "" %} diff --git a/mycaldav/views.py b/mycaldav/views.py index 14ca097..81404df 100644 --- a/mycaldav/views.py +++ b/mycaldav/views.py @@ -6,6 +6,7 @@ from django.template import loader from django.views.decorators.clickjacking import xframe_options_exempt from django.contrib.auth.decorators import login_required + import caldav as cal from datetime import datetime, timedelta, time @@ -15,6 +16,20 @@ from datetime import datetime, timedelta, time from mycaldav.models import * from mycaldav.settings import * from mycaldav.export_team_pdf import * +from comm_op.models import comm_opMessage + +class caldav_item: + def __init__(self): + self.uuid = "" + self.name = "" + self.desc = "" + self.key = "" + self.done = False + self.href = "#" + self.str_start_date = "" + self.str_end_date = "" + + @xframe_options_exempt @@ -37,8 +52,10 @@ def view_task_edit_caldav(request, uuid): def view_op_edit_caldav(request, uuid): print(uuid) - myClient = cls_caldav_client() - myClient.mark_as_done_task(calandar=myClient.a_op,uuid=uuid) + object = comm_opMessage.objects.get(pk=uuid) + object.bDone = True + object.save() + return view_op_caldav(request) def view_vhc_edit_caldav(request, uuid): @@ -72,10 +89,23 @@ def view_road_caldav(request): return HttpResponse(template.render(context, request)) @xframe_options_exempt def view_op_caldav(request): - o_caldav = cls_caldav(url=caldav_cfg["op"]) - o_caldav.get_caldav_data(periode=1) + o_items = comm_opMessage.objects.filter(bDone=False, dtStart__lte= datetime.today() + timedelta(days=1)) + all_items = [] + for item in o_items: + temp_item = caldav_item() + temp_item.uuid = item.uuid + temp_item.name = item.sTitle + temp_item.desc = item.sDesc + temp_item.key = item.sKey + temp_item.str_start_date = str(item.dtStart.day) + "." + str(item.dtStart.month) + if item.dtEnd != None: + temp_item.str_end_date = str(item.dtEnd.day) + "." + str(item.dtEnd.month) + else: + temp_item.str_end_date = None + all_items.append(temp_item) + template = loader.get_template("op/op_view.html") - context = {'latest_task_list': o_caldav.items} + context = {'latest_task_list': all_items} return HttpResponse(template.render(context, request)) @xframe_options_exempt