Пример #1
0
def add_structure_post():
    v = Validator(request.form)
    v.field("name_structure").required()
    if v.is_valid():
        name_structure = v.valid_data.name_structure
        Department.add(request.form.get("department_id"), name_structure)
        return jsonify({"status": "ok"})
    return jsonify({"status": "fail",
                    "errors": v.errors})
Пример #2
0
def profile(user_id=None):
    user = auth.service.get_user() if user_id is None else User.get_by_id(user_id)
    if user is None:
        abort(404)
    user_department = Department.get_dep_if_user_head(user.id)
    count_users = ''
    if user_department:
        count_users = Department.count_users_in_dep_tree(user_department.id)
    if user.department_id:
        head_user = Department.get_head_user_in_dep_tree(user.department_id, user.id)
    else:
        dep = db.session.query(Department).filter_by(parent_id=None).first()
        head_user = Department.get_head_user_in_dep_tree(dep.id, user.id)
    return render_template('profile/profile.html', user=user,
                                                   user_department=user_department,
                                                   count_users=count_users,
                                                   head_user=head_user)
Пример #3
0
def dep_users_json(dep_id):
    columns = []
    columns.append(ColumnDT('id', filter=_default_value))
    columns.append(ColumnDT('full_name', filter=_default_value))
    columns.append(ColumnDT('email', filter=_default_value))
    columns.append(ColumnDT('login', filter=_default_value))
    columns.append(ColumnDT('mobile_phone', filter=_default_value))
    columns.append(ColumnDT('inner_phone', filter=_default_value))
    query = db.session.query(User).filter_by(department_id=dep_id)
    rowTable = DataTables(request, User, query, columns)
    json_result = rowTable.output_result()
    departments = Department.get_all()
    for row in json_result['aaData']:
        row_id = row['0']
        last_columns = str(len(columns))
        dep_html = ''
        for dep in departments:
            sel = 'selected' if dep.id == dep_id else ''
            dep_html += "<option value='"+str(dep.id)+"/"+row_id+"' "+sel+">"+dep.name+"</option>"
        manage_html = """
          <select onchange="change_user_dep(this.value)" id="first-disabled" class="selectpicker" data-hide-disabled="true" data-live-search="true" data-width="200px">
            <optgroup label="Доп возможности">
              <option value="0/"""+row_id+"""">Удалить из отдела</option>
            </optgroup>
            <optgroup label="Отделы">"""+dep_html+"""</optgroup>
          </select>
          <script type="text/javascript">$('.selectpicker').selectpicker({style: 'btn-default',size: 5});</script>
          """
        row[last_columns] = manage_html
        src_foto = ''
        user = User.get_by_id(row_id)
        if user.photo:
            src_foto = user.photo.get_url('thumbnail')
        else:
            src_foto = '/static/img/no_photo.jpg'
        row['1'] = """<img src="{src}" class="foto-small-struct">""".format(src = src_foto) + "<a href='"+url_for('user.profile')+"/"+row_id+"'>"+row['1']+"</a>"
        head_dep = str(len(columns)+1)
        if Department.is_user_head(dep_id, int(row_id)):
            checked = "checked"
        else:
            checked = ''
        row[head_dep] = "<input onclick='change_head_dep(this, "+str(dep_id)+", "+row_id+")' type='checkbox' id='head_check' "+checked+">"
    return jsonify(**json_result)
Пример #4
0
def profile(user_id=None):
    user = auth.service.get_user() if user_id is None else User.get_by_id(
        user_id)
    if user is None:
        abort(404)
    user_department = Department.get_dep_if_user_head(user.id)
    count_users = ''
    if user_department:
        count_users = Department.count_users_in_dep_tree(user_department.id)
    if user.department_id:
        head_user = Department.get_head_user_in_dep_tree(
            user.department_id, user.id)
    else:
        dep = db.session.query(Department).filter_by(parent_id=None).first()
        head_user = Department.get_head_user_in_dep_tree(dep.id, user.id)
    return render_template('profile/profile.html',
                           user=user,
                           user_department=user_department,
                           count_users=count_users,
                           head_user=head_user)
Пример #5
0
def get_list_users(dep_id, user_name):
    department = Department.get_by_id(dep_id)
    users = User.find_user(dep_id, user_name)
    users_list = []
    a = {"users":[]}
    for u in users:
        src_foto, dep_name = '', ''
        user = User.get_by_id(u.id)
        if user.photo:
            src_foto = user.photo.get_url('thumbnail')
        else:
            src_foto = '/static/img/no_photo.jpg'
        if u.department_id:
            dep_name = u.department.name or ''
        else:
            dep_name = ''
        a["users"].append({"u_id":u.id,
                           "full_name":u.full_name,
                           "dep_name":dep_name,
                           "src_foto":src_foto})
    return jsonify(**a)
Пример #6
0
def _edit_user_at_local_db(id, full_name, position, department, photo,
                           email, mobile_phone, inner_phone, birth_date, skype):
    try:
        User.edit_user(
            uid=id,
            full_name=full_name,
            position=position,
            email=email,
            inner_phone=inner_phone,
            mobile_phone=mobile_phone,
            birth_date=birth_date,
            skype=skype,
            photo=photo
        )
        User.add_user2dep(
            dep_id=Department.get_by_name(department).id,
            user_id=id
        )
        return True
    except:
        return False
Пример #7
0
def _add_user_to_local_db(login, name, surname, email, department, photo,
                          mobile_phone, inner_phone, birth_date, skype):
    try:
        user = User()
        user.login = login
        user.full_name = "{0} {1}".format(name, surname)
        user.mobile_phone = mobile_phone
        user.inner_phone = inner_phone
        user.email = email
        user.department = Department.get_by_name(department)
        user.birth_date = birth_date
        user.skype = skype

        db.session.add(user)
        db.session.flush()

        p = user.photo = File.create(name='photo.png', module='users', entity=user)
        p.makedir()
        p.update_hash()
        image.thumbnail(photo, width=100, height=100, fill=image.COVER).save(p.get_path(sufix="thumbnail"))
        image.resize(photo).save(p.get_path())
        return True
    except:
        return False
Пример #8
0
def department_info(dep_id):
    department = Department.get_by_id(dep_id)
    return render_template('admin/company_structure/department.html', department=department)
Пример #9
0
def manage_users(dep_id):
    department = Department.get_by_id(dep_id)
    return render_template('admin/company_structure/manage_users.html', department=department)
Пример #10
0
def set_user_head_dep(option, dep_id, user_id):
    Department.add_head4dep(option, dep_id, user_id)
    return jsonify({'status': 'ok'})
Пример #11
0
def delete_structure(dep_id):
    Department.delete(dep_id)
    return redirect(url_for('admin.company_structure'))
Пример #12
0
def show_structure():
    departments = defaultdict(list)
    for department in Department.all():
        departments[department.parent_id].append(department)
    return render_template('company_structure/show.html',
                           departments=departments)
Пример #13
0
def add_departments_members():
    for department_name, usernames in ldap.get_department_info().items():
        department = Department.get_by_name(department_name)
        for user in User.query.filter(User.login.in_(usernames)):
            user.department = department
    db.session.commit()
Пример #14
0
def show_structure():
    departments = defaultdict(list)
    for department in Department.all():
        departments[department.parent_id].append(department)
    return render_template('company_structure/show.html', departments=departments)
Пример #15
0
def add_departments_members():
    for department_name, usernames in ldap.get_department_info().items():
        department = Department.get_by_name(department_name)
        for user in User.query.filter(User.login.in_(usernames)):
            user.department = department
    db.session.commit()
Пример #16
0
def add_all_departments():
    for department_name in ldap.get_all_departments():
        department = Department(name=department_name)
        db.session.add(department)
    db.session.commit()
Пример #17
0
def edit_structure(dep_id):
    department = Department.get_by_id(dep_id)
    dep_parents = Department.get_parent_all(dep_id)
    return render_template('admin/company_structure/edit_structure.html',
                            department=department,
                            dep_parents = dep_parents)
Пример #18
0
def add_structure(dep_id):
    department = Department.get_by_id(dep_id)
    return render_template('admin/company_structure/add_structure.html', department=department)