]> git.parisson.com Git - teleforma.git/commitdiff
add user init pb fix
authorGuillaume Pellerin <yomguy@parisson.com>
Mon, 8 Jul 2013 14:17:37 +0000 (16:17 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Mon, 8 Jul 2013 14:17:37 +0000 (16:17 +0200)
teleforma/management/commands/teleforma-import-users-pb-fix.py [new file with mode: 0644]
teleforma/management/commands/teleforma-reset-all-passwords-with-mail.py

diff --git a/teleforma/management/commands/teleforma-import-users-pb-fix.py b/teleforma/management/commands/teleforma-import-users-pb-fix.py
new file mode 100644 (file)
index 0000000..24ec32f
--- /dev/null
@@ -0,0 +1,55 @@
+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 telemeta.models import *
+from telemeta.util.unaccent import unaccent
+from teleforma.models import *
+import logging
+import codecs
+import xlrd
+import datetime
+
+
+class Command(BaseCommand):
+    help = "Import users from a XLS file (see an example in example/data/"
+    args = "path period_name"
+    first_row = 2
+    admin_email = 'webmaster@parisson.com'
+    DEBUG = True
+
+    def get_courses(self, code):
+        courses = Course.objects.filter(code=code)
+        if courses:
+            return courses[0]
+        else:
+            return None
+
+    def import_user(self, row, period_name):
+        self.period_name = period_name
+        last_name   = row[0].value
+        first_name  = row[1].value
+        email       = row[9].value
+
+        user = User.objects.filter(first_name=first_name,
+                                     last_name=last_name, email=email)
+
+        if user:
+            user = user[0]
+            print 'update: ' + first_name + ' ' + last_name + ' ' + user.username
+            student = user.student.get()
+            student.oral_speciality = self.get_courses(row[6].value)
+            student.oral_1 = self.get_courses(row[7].value)
+            student.oral_2 = self.get_courses(row[8].value)
+            student.save()
+
+    def handle(self, *args, **options):
+        file = args[0]
+        period_name = args[1]
+        self.book = xlrd.open_workbook(file)
+        sheet = self.book.sheet_by_index(0)
+        col = sheet.col(0)
+        for i in range(self.first_row, len(col)):
+            self.import_user(sheet.row(i), period_name)
+
index bb6c744e11eb9c20273dba65f75f5eb0176a81d1..13e7941217fdadb3ee7da4f482f232be7106ef93 100644 (file)
@@ -59,6 +59,6 @@ class Command(BaseCommand):
                         self.init_password_email(user)
                         profile.init_password = True
                         profile.save()
-                        logger.logger.info('add : ' + user.username)
+                        logger.logger.info('init : ' + user.username)
 
         logger.logger.info('############## Done #################')
\ No newline at end of file