From e7ccc34084fe996b6f163a71b5c7f560753134b1 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Thu, 22 Dec 2016 19:07:31 +0100 Subject: [PATCH] Add deactivate command --- .../commands/teleforma-students-deactivate.py | 50 +++++++++++++++++++ .../templates/teleforma/course_media.html | 12 ++--- 2 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 teleforma/management/commands/teleforma-students-deactivate.py diff --git a/teleforma/management/commands/teleforma-students-deactivate.py b/teleforma/management/commands/teleforma-students-deactivate.py new file mode 100644 index 00000000..bf930349 --- /dev/null +++ b/teleforma/management/commands/teleforma-students-deactivate.py @@ -0,0 +1,50 @@ +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.contrib.auth.forms import PasswordResetForm +from django.contrib.auth.tokens import default_token_generator +from django.template.defaultfilters import slugify +from django.template.loader import render_to_string +from django.core.mail import send_mail, mail_admins +from django.utils import translation +from telemeta.models import * +from telemeta.util.unaccent import unaccent +from teleforma.models import * +import logging +from postman import * + + +class Logger: + """A logging object""" + + def __init__(self, file): + self.logger = logging.getLogger('teleforma') + 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 = "Activate all user account for subscribed students" + + def handle(self, *args, **options): + period_name = args[-2] + log_file = args[-1] + logger = Logger(log_file) + logger.logger.info('########### Processing #############') + users = User.objects.all() + period = Period.objects.get(name=period_name) + + for user in users: + students = user.student.all() + if students: + student = students[0] + if student.is_subscribed and user.is_active and student.period == period: + user.is_active = False + user.save() + logger.logger.info('init : ' + user.username) + + logger.logger.info('############## Done #################') diff --git a/teleforma/templates/teleforma/course_media.html b/teleforma/templates/teleforma/course_media.html index 154cb530..39a0a1a4 100644 --- a/teleforma/templates/teleforma/course_media.html +++ b/teleforma/templates/teleforma/course_media.html @@ -11,12 +11,12 @@ {% endif %} - + {% if user.is_staff %}