Esempio n. 1
0
def register_student_fast(group_id=None, month_number=None):
    form = RegistrationStudentFastForm()
    if form.validate_on_submit():
        na_text = 'не указано'
        fio = '{} {} {}'.format(form.last_name.data, form.first_name.data, form.second_name.data).strip()
        role_student = SystemRole.query.filter_by(name=role_student_name).first()
        user_student = SystemUser(
            login=generate_login_student(form.last_name.data, form.first_name.data, form.second_name.data),
            password=password_from_date(form.birth_date.data), system_role=role_student, enabled=True)
        additional_info = 'телефон родителя: {}; \nимя родителя: {}'.format(form.parent_phone.data,
                                                                            form.parent_name.data)
        student = Student(fio=fio, system_user=user_student, birth_date=form.birth_date.data,
                          birth_place=na_text, registration_place=na_text, actual_address=na_text,
                          additional_info=additional_info, known_from=na_text, school_id=form.school.data,
                          citizenship_id=default_citizenship_id, grade=form.grade.data, shift=form.shift.data,
                          phone=na_text, contact_phone=contact_phone_student, filled=False)
        db.session.add(user_student)
        db.session.add(student)
        if group_id is not None:
            group = Group.query.get_or_404(group_id)
            db.session.add(StudentInGroup(student=student, group=group, enter_month=group.start_month,
                                          exit_month=group.end_month))
            flash('ученик {} создан и добавлен в группу {}.'.format(fio, group.name))
            return redirect(url_for('lessons.lessons_in_month', group_id=group_id, month_number=month_number))
        else:
            flash('ученик {} создан.'.format(fio))
            return redirect(url_for('users.students_list'))
    return render_template('users/form_register_student_fast.html', form=form)
Esempio n. 2
0
def create_bot():
    role_bot = SystemRole.query.filter_by(name=role_bot_name).first()
    user_bot = SystemUser(login=bot_login_dump_creator,
                          password='******',
                          system_role=role_bot,
                          enabled=True)
    bot = Bot(fio='создатель дампов', system_user=user_bot)
    db.session.add(user_bot)
    db.session.add(bot)
    db.session.commit()
Esempio n. 3
0
def register_developer():
    form = RegistrationDeveloperForm()
    if form.validate_on_submit():
        role_developer = SystemRole.query.filter_by(name=role_developer_name).first()
        user_developer = SystemUser(login=form.login.data, password=form.password.data, system_role=role_developer,
                              enabled=form.enabled.data)
        developer = Developer(fio=form.fio.data, system_user=user_developer)
        db.session.add(user_developer)
        db.session.add(developer)
        flash('разработчик {} создан.'.format(form.login.data))
        return redirect(url_for('.developers_list'))
    return render_template('users/form_register_edit.html', form=form, class_name='разработчика', creating=True)
Esempio n. 4
0
def register_bot():
    form = RegistrationBotForm()
    if form.validate_on_submit():
        role_bot = SystemRole.query.filter_by(name=role_bot_name).first()
        user_bot = SystemUser(login=form.login.data, password=form.password.data, system_role=role_bot,
                              enabled=form.enabled.data)
        bot = Bot(fio=form.fio.data, system_user=user_bot)
        db.session.add(user_bot)
        db.session.add(bot)
        flash('бот {} создан.'.format(form.login.data))
        return redirect(url_for('.bots_list'))
    return render_template('users/form_register_edit.html', form=form, class_name='бота', creating=True)
Esempio n. 5
0
def register_teacher():
    form = RegistrationTeacherForm()
    if form.validate_on_submit():
        role_teacher = SystemRole.query.filter_by(name=role_teacher_name).first()
        user_teacher = SystemUser(login=form.login.data, password=form.password.data, system_role=role_teacher,
                                  enabled=form.enabled.data)
        teacher = Teacher(fio=form.fio.data, system_user=user_teacher, phone=form.phone.data)
        db.session.add(user_teacher)
        db.session.add(teacher)
        flash('преподаватель {} создан.'.format(form.login.data))
        return redirect(url_for('.teachers_list'))
    return render_template('users/form_register_edit.html', form=form, class_name='преподавателя', creating=True)
Esempio n. 6
0
def create_developer():
    role_developer = SystemRole.query.filter_by(
        name=role_developer_name).first()
    user_developer = SystemUser(login='******',
                                password='******',
                                system_role=role_developer,
                                enabled=True)
    developer = Developer(fio='аккаунт разработчика',
                          system_user=user_developer)
    db.session.add(user_developer)
    db.session.add(developer)
    db.session.commit()
Esempio n. 7
0
def register_student():
    form = RegistrationStudentForm()
    if form.validate_on_submit():
        fio = '{} {} {}'.format(form.last_name.data, form.first_name.data, form.second_name.data).strip()
        role_student = SystemRole.query.filter_by(name=role_student_name).first()
        user_student = SystemUser(
            login=generate_login_student(form.last_name.data, form.first_name.data, form.second_name.data),
            password=password_from_date(form.birth_date.data), system_role=role_student, enabled=form.enabled.data)
        student = Student(fio=fio, system_user=user_student, birth_date=form.birth_date.data,
                          birth_place=form.birth_place.data, registration_place=form.registration_place.data,
                          actual_address=form.actual_address.data, additional_info=form.additional_info.data,
                          known_from=form.known_from.data, school_id=form.school.data,
                          citizenship_id=form.citizenship.data, grade=form.grade.data, shift=form.shift.data,
                          phone=form.phone.data, contact_phone=form.contact_phone.data)
        if form.mother.data > 0:
            db.session.add(ParentOfStudent(student=student, parent_id=form.mother.data, is_mother=True))
        if form.father.data > 0:
            db.session.add(ParentOfStudent(student=student, parent_id=form.father.data, is_mother=False))
        if form.mother.data == create_new_parent_id:
            mother = Parent(fio=form.m_fio.data, phone=form.m_phone.data, email=form.m_email.data,
                            passport=form.m_passport.data, address=form.m_address.data,
                            home_phone=form.m_home_phone.data, vk_link=form.m_vk_link.data,
                            notification_types=notification_types_list_to_int(form.m_notification_types.data))
            db.session.add(mother)
            db.session.add(ParentOfStudent(student=student, parent=mother, is_mother=True))
            flash('родитель {} создан'.format(form.m_fio.data))
        if form.father.data == create_new_parent_id:
            father = Parent(fio=form.f_fio.data, phone=form.f_phone.data, email=form.f_email.data,
                            passport=form.f_passport.data, address=form.f_address.data,
                            home_phone=form.f_home_phone.data, vk_link=form.f_vk_link.data,
                            notification_types=notification_types_list_to_int(form.f_notification_types.data))
            db.session.add(father)
            db.session.add(ParentOfStudent(student=student, parent=father, is_mother=False))
            flash('родитель {} создан'.format(form.f_fio.data))
        db.session.add(user_student)
        db.session.add(student)
        flash('ученик {} создан.'.format(fio))
        return redirect(url_for('users.students_list'))
    return render_template('users/form_register_edit.html', form=form, class_name='ученика', creating=True)
Esempio n. 8
0
 def test_password_setter(self):
     u = SystemUser(password='******')
     self.assertTrue(u.password_hash is not None)
Esempio n. 9
0
 def test_password_salt_are_random(self):
     u1 = SystemUser(password='******')
     u2 = SystemUser(password='******')
     self.assertTrue(u1.password_hash != u2.password_hash)
Esempio n. 10
0
 def test_password_verification(self):
     u = SystemUser(password='******')
     self.assertTrue(u.verify_password('fish'))
     self.assertFalse(u.verify_password('anth'))
Esempio n. 11
0
 def test_no_password_getter(self):
     u = SystemUser(password='******')
     with self.assertRaises(AttributeError):
         u.password()
  def run(self, filenames, postproc_funcs, reduced_record_ctx):
    self.key_concat_seq = reduced_record_ctx['key_concat_seq']

    reader = RecordsReader(filenames, 0)

    """ Run all the postproc funcs using results as args """
    for group_key, records in self.group_records(reader).iteritems():
      grp_part = [] if group_key == '__stub__' else group_key.split(self.key_concat_seq)

      for fname in postproc_funcs:
        func = handler_for_name(fname)
        processed = []
        for t in func(records):
          processed.append(t)
        records = processed

      for k, v in records:
        groupings = list(grp_part)
        if k:
          groupings.append(k)
        logging.warn("set for storage (%s,%s)" % (groupings, v))
        store_reduced_record(groupings, v, reduced_record_ctx)

    # Actualiza las propiedades de control del indicator_entry
    indicator_entry = IndicatorEntry.get(reduced_record_ctx['indicator_entry'])
    indicator_entry.status = u'calculated'
    indicator_entry.num_reduced_records = indicator_entry.number_reduced_records()
    indicator_entry.calculated_date = datetime.datetime.now()
    indicator_entry.put()

    # Crea la notificacion para el usuario
    user = SystemUser.get(reduced_record_ctx['user_key'])
    if user:
      notification = Notification(
        user=user.key(),
        type='miscelaneous',
        title=_('INDICATOR_ENTRY_CALCULATED'),
        message=render_template('indicator_entry_completed', {
          'indicator_entry_key': str(indicator_entry.key()),
          'indicator_entry_name': indicator_entry.name,
          'num_reduced_records': indicator_entry.num_reduced_records
        })
      )
      notification.put()

    # Obtiene todas las opciones de los niveles y las guarda en el indicator_entry
    indicator_path = indicator_entry.indicator_path

    levels = {}

    number_levels = len(indicator_path.grouping_mappings)
    for i in range(1, number_levels + 1):
      levels['level%s' % i] = []

    limit = 100
    offset = 0
    while True:
      reduced_records = ReducedRecord.all().filter('indicator_path =', indicator_path.key()).fetch(limit=limit,
                                                                                                   offset=offset)
      if len(reduced_records) == 0:
        break

      for reduced_record in reduced_records:
        for i in range(1, number_levels + 1):
          levels['level%s' % i].append(getattr(reduced_record, 'level%s' % i))

      offset += 100

    new_levels = {}
    for key, value in levels.iteritems():
      value = unique(value)
      value.sort()
      new_levels[key] = value
    del levels

    indicator_entry.level_options = json.encode(new_levels)
    indicator_entry.put()
Esempio n. 13
0
def create_stub_models():
    create_system_roles()
    create_default_citizenships()
    create_schedule_times()
    create_developer()
    create_bot()

    role_master = SystemRole.query.filter_by(name=role_master_name).first()
    user_master = SystemUser(login='******',
                             password='******',
                             system_role=role_master,
                             enabled=True)
    master = Master(fio='Руководитель Иван Иванович', system_user=user_master)
    db.session.add(user_master)
    db.session.add(master)

    role_teacher = SystemRole.query.filter_by(name=role_teacher_name).first()
    user_teacher = SystemUser(login='******',
                              password='******',
                              system_role=role_teacher,
                              enabled=True)
    teacher = Teacher(fio='Учитель Петр Петрович',
                      system_user=user_teacher,
                      phone='89012223344')
    db.session.add(user_teacher)
    db.session.add(teacher)

    school = School(name='школа №42')

    role_student = SystemRole.query.filter_by(name=role_student_name).first()
    user_student = SystemUser(login='******',
                              password='******',
                              system_role=role_student,
                              enabled=True)
    student = Student(fio='Ученик Алексей Алексеевич',
                      system_user=user_student,
                      birth_place='birth place',
                      birth_date='2002-08-31',
                      registration_place='reg place',
                      actual_address='act addr',
                      citizenship_id=1,
                      school=school,
                      grade='1',
                      shift=1,
                      contact_phone=contact_phone_student,
                      phone='89023334455')
    db.session.add(user_student)
    db.session.add(student)

    section1 = Section(name='робо', price=800)
    section2 = Section(name='веб', price=900)
    db.session.add(section1)
    db.session.add(section2)

    group = Group(name='робо-71',
                  section=section1,
                  teacher=teacher,
                  start_month=8,
                  end_month=16)
    db.session.add(group)
    db.session.add(
        Group(name='веб-61',
              section=section2,
              teacher=teacher,
              start_month=8,
              end_month=16))

    student_in_group = StudentInGroup(student=student,
                                      group=group,
                                      discount=100,
                                      enter_month=8,
                                      exit_month=16)
    db.session.add(student_in_group)
    db.session.add(
        Payment(student_in_group=student_in_group,
                month=9,
                value=400,
                comment='comment'))

    db.session.commit()