def handle(self, **options): year = options['year'] if year: year = int(year) year, _ = Year.objects.get_or_create(start_year=year) if not year: year = get_or_create_current_year() school, created = School.objects.get_or_create( link='shad', name='School of Data Analysis') if created: print "WARNING: NEW School created!" school.save() course, created = Course.objects.get_or_create(year=year, name='Python') if created: print "WARNING: NEW Course created!" course.is_active = True course.contest_integrated = True course.save() school.courses.add(course) for student in get_users_from_cs_xml(sys.stdin): last_name, first_name = student['name'].split(' ', 1) username = student['login'] group_name = student['grp'] try: user = User.objects.get(username__iexact=username) except User.DoesNotExist: print "Creating new user! : {0}".format( username.encode("utf-8")) user = User.objects.create(username=username) user.last_name = last_name user.first_name = first_name if (user.password == "") or (not user.has_usable_password()): user.set_password(''.join( random.choice(string.letters) for i in xrange(20))) user.save() group, _ = Group.objects.get_or_create(year=year, name=group_name) course.groups.add(group) group.students.add(user) print "{0} {1} {2}".format(user, user.get_full_name().encode("utf-8"), group)
def handle(self, **options): year = options['year'] if year: year = int(year) year, _ = Year.objects.get_or_create(start_year=year) if not year: year = get_or_create_current_year() school, created = School.objects.get_or_create(link='shad', name='School of Data Analysis') if created: print "WARNING: NEW School created!" school.save() course, created = Course.objects.get_or_create(year=year, name='Python') if created: print "WARNING: NEW Course created!" course.is_active = True course.contest_integrated = True course.rb_integrated = True course.save() school.courses.add(course) for student in get_users_from_cs_xml(sys.stdin): last_name, first_name = student['name'].split(' ', 1) username = student['login'] group_name = student['grp'] try: user = User.objects.get(username__iexact=username) except User.DoesNotExist: print "Creating new user! : {0}".format(username.encode("utf-8")) user = User.objects.create(username=username) user.last_name = last_name user.first_name = first_name if ( user.password == "" ) or ( user.has_usable_password() == False ): user.set_password(''.join(random.choice(string.letters) for i in xrange(20))) user.save() group, _ = Group.objects.get_or_create(year=year, name=group_name) course.groups.add(group) group.students.add(user) print "{0} {1} {2}".format(user, user.get_full_name().encode("utf-8"), group)
def import_perltask(perltask_xml, year=None): if year is None: year = get_or_create_current_year() course, created = Course.objects.get_or_create(year=year, name='Perltask') if created: print "WARNING: NEW Course created!" course.type = Course.TYPE_POTOK course.take_policy = Course.TAKE_POLICY_SELF_TAKEN course.max_users_per_task = 8 course.max_days_without_score = 30 course.days_drop_from_blacklist = 14 course.save() doc = parse(perltask_xml) for task in doc.getElementsByTagName("task"): if task.getAttribute('m'): # got_substasks import_task_with_subtasks(task, course, year) else: import_task_no_subtasks(task, course, year)
def handle(self, **options): year = options['year'] if year: year = int(year) year, _ = Year.objects.get_or_create(start_year=year) if not year: year = get_or_create_current_year() course, created = Course.objects.get_or_create(year=year, name='Perltask') if created: print "WARNING: NEW Course created!" course.type = Course.TYPE_POTOK course.take_policy = Course.TAKE_POLICY_SELF_TAKEN course.max_users_per_task = 8 course.max_days_without_score = 30 course.days_drop_from_blacklist = 14 course.save() for student in get_users_from_cs_xml(sys.stdin): last_name, first_name = student['name'].split(' ', 1) username = student['login'] group_name = student['grp'] try: user = User.objects.get(username__iexact=username) except User.DoesNotExist: print "Creating new user! : {0}".format(username.encode("utf-8")) user = User.objects.create(username=username) if ( user.password == "" ) or ( user.has_usable_password() == False ): user.set_password(''.join(random.choice(string.letters) for i in xrange(20))) user.save() group, _ = Group.objects.get_or_create(year=year, name=group_name) course.groups.add(group) group.students.add(user) print "{0} {1} {2}".format(user, user.get_full_name().encode("utf-8"), group)