From b7fc272b5e658726e3617eacc32aa088c39db58b Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Fri, 17 Jun 2022 15:55:33 +0200 Subject: [PATCH] /bin/bash: ligne 1: q : commande introuvable --- .../teleforma-publish-notify-conferences.py | 47 +++++++++++++++++++ teleforma/models/core.py | 1 + 2 files changed, 48 insertions(+) create mode 100644 teleforma/management/commands/teleforma-publish-notify-conferences.py diff --git a/teleforma/management/commands/teleforma-publish-notify-conferences.py b/teleforma/management/commands/teleforma-publish-notify-conferences.py new file mode 100644 index 00000000..86103ff7 --- /dev/null +++ b/teleforma/management/commands/teleforma-publish-notify-conferences.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- + +from optparse import make_option +from django.conf import settings +from django.core.management.base import BaseCommand, CommandError +from django.contrib.auth.models import User +from django.template.defaultfilters import slugify +from teleforma.models import * +import logging +import os +from copy import deepcopy + +class Logger: + """A logging object""" + + def __init__(self, file): + self.logger = logging.getLogger('myapp') + self.hdlr = logging.FileHandler(file) + self.formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') + self.hdlr.setFormatter(self.formatter) + self.logger.addHandler(self.hdlr) + self.logger.setLevel(logging.INFO) + + +class Command(BaseCommand): + help = """Publish conferences and notify users when \ + conference.date_publish is equal or greater \ + than current date """ + + def handle(self, *args, **options): + conferences = Conference.objects.filter(notified=False, + date_publish__lte=datetime.datetime.now()) + + for conference in conferences: + conference.status = 3 + conference.save() + + 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']: + notify(student.user, conference) + + conference.notified = True + conference.save() \ No newline at end of file diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 18a7e8c1..07821464 100755 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -396,6 +396,7 @@ class Conference(models.Model): streaming = models.BooleanField(_('streaming'), default=True) web_class_group = models.ForeignKey('WebClassGroup', related_name='conferences', verbose_name=_('web class group'), blank=True, null=True, on_delete=models.SET_NULL) + notified = models.BooleanField(_('notified')) @property def description(self): -- 2.39.5