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})
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)
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)
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)
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)
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
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
def department_info(dep_id): department = Department.get_by_id(dep_id) return render_template('admin/company_structure/department.html', department=department)
def manage_users(dep_id): department = Department.get_by_id(dep_id) return render_template('admin/company_structure/manage_users.html', department=department)
def set_user_head_dep(option, dep_id, user_id): Department.add_head4dep(option, dep_id, user_id) return jsonify({'status': 'ok'})
def delete_structure(dep_id): Department.delete(dep_id) return redirect(url_for('admin.company_structure'))
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)
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()
def add_all_departments(): for department_name in ldap.get_all_departments(): department = Department(name=department_name) db.session.add(department) db.session.commit()
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)
def add_structure(dep_id): department = Department.get_by_id(dep_id) return render_template('admin/company_structure/add_structure.html', department=department)