]> git.parisson.com Git - teleforma.git/commitdiff
use date_publish when possible, add option to conf publish command
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 29 Jun 2022 21:13:12 +0000 (23:13 +0200)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 29 Jun 2022 21:13:12 +0000 (23:13 +0200)
teleforma/management/commands/teleforma-publish-notify-conferences.py
teleforma/models/core.py

index ca38f2238bd3ddffe225e3103e4e8ffd9e866674..7b6a7ccdf02c0753f8fb819c8916e1d8a8959656 100644 (file)
@@ -34,25 +34,43 @@ class Command(BaseCommand):
             conference.date_publish is equal or greater \
             than current date """
 
-    message = "Nouvelle conférence"
+    def add_arguments(self, parser):
+        parser.add_argument('--logfile', type=str, required=True,
+                            help='log file to use')
+
+        parser.add_argument('--period', type=str, required=True,
+                            help='period to process')
 
     def handle(self, *args, **options):
-        conferences = Conference.objects.filter(notified=False,
-                        date_publish__lte=datetime.datetime.now())
+        logpath = options['logfile']
+        logfile = Logger(logpath)
+
+        period_name = options['period']
+        period + Period.objects.get(name=period_name)
+
+        conferences = Conference.objects.filter(
+                        period=period,
+                        notified=False,
+                        date_publish__lte=datetime.datetime.now()
+                        )
 
         for conference in conferences:
             conference.status = 3
             conference.save()
+            logger.logger.info("Conference published: " + conference.public_id)
+
+            media = conference.media.filter(mime_type__in='video')[0]
+            url = reverse('teleforma-media-detail', args=[conference.period.id, media.id])
+            message = "Nouvelle conférence publiée : " + str(conference)
 
             students = Student.objects.filter(period=conference.period)
             for student in students:
                 courses = get_courses(student.user, period=conference.period)
                 for course in courses:
                     if conference.course == course['course'] and \
-                        conference.course_type in course['types']:
-                        media = conference.media.filter(mime_type__in='video')[0]
-                        url = reverse('teleforma-media-detail', args=[conference.period.id, media.id])
-                        notify(student.user, self.message, url)
+                            conference.course_type in course['types']:
+                        notify(student.user, message, url)
+                        logger.logger.info("Student notified: " + student.user.username)
 
             conference.notified = True
             conference.save()
\ No newline at end of file
index 5330be1e428d8f663deb41c258ca470cbfaa58e5..cb654fd4c37960ffdd92d0fd0b8f9c7a73f25ee4 100755 (executable)
@@ -410,16 +410,21 @@ class Conference(models.Model):
         return slug
 
     def __str__(self):
+        if self.date_publish:
+            date = self.date_publish
+        else:
+            date = self.date_begin
+
         if self.professor:
             list = [self.course.title,
                     self.course_type.name, self.session,
                     self.professor.user.first_name,
                     self.professor.user.last_name,
-                    str(self.date_begin)]
+                    str(date)]
         else:
             list = [self.course.title,
                     self.course_type.name, self.session,
-                    str(self.date_begin)]
+                    str(date)]
         return ' - '.join(list)
 
     def save(self, *args, **kwargs):