From: Guillaume Pellerin Date: Sat, 30 Jan 2016 08:13:45 +0000 (+0100) Subject: add user activating script for subscribed students X-Git-Tag: 1.1~167 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=e00141e89ba181fc9c56ca40a020b8ef8216201d;p=teleforma.git add user activating script for subscribed students --- diff --git a/teleforma/management/commands/teleforma-students-activate.py b/teleforma/management/commands/teleforma-students-activate.py new file mode 100644 index 00000000..80fb49bd --- /dev/null +++ b/teleforma/management/commands/teleforma-students-activate.py @@ -0,0 +1,48 @@ +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): + log_file = args[-1] + logger = Logger(log_file) + logger.logger.info('########### Processing #############') + users = User.objects.all() + + for user in users: + student = user.student.all() + if student: + if student.is_subscribed and not user.is_active: + user.is_active = True + user.save() + logger.logger.info('init : ' + user.username) + + logger.logger.info('############## Done #################') +