示例#1
0
def staff_profile():
    firstname = request.json['firstname']
    lastname = request.json['lastname']
    sex = request.json['sex']
    phone = request.json['phone']
    role = request.json['staff']

    staff = Staff(staff_id=current_user.id,
                  firstname=firstname,
                  lastname=lastname,
                  sex=sex,
                  phone_no=phone)
    staff.save()
    if (role == "HOD"):
        department_code = request.json['department_code']
        department = Department.query.filter_by(code=department_code).first()
        department.staff_id = current_user.id
        db.session.commit()

    elif (role == "Adviser"):
        department_code = request.json['department_code']
        adviser = Adviser(staff_id=current_user.id,
                          department_code=department_code,
                          level=4)
        adviser.save()

    elif (role == "Dean"):
        faculty = request.json['faculty']
        faculty = Faculty.query.filter_by(name=faculty).first()
        faculty.staff_id = current_user.id
        db.session.commit()

    data = {'message': 'success'}

    return jsonify(data)
示例#2
0
class StaffTestCase(TestCase):
    def setUp(self):
        Base.metadata.create_all(engine)
        self.staff = Staff(name="Some Name")
        self.staff.save()

    def tearDown(self):
        Base.metadata.drop_all(engine)

    def test_class_has_required_attributes(self):
        self.assertTrue(hasattr(Staff, 'id'))
        self.assertTrue(hasattr(Staff, 'name'))
        self.assertTrue(hasattr(Staff, '__table__'))

    def test_class_attributes_mapped_to_right_db_types(self):
        self.assertEqual(type(self.staff.id), int)
        self.assertEqual(type(self.staff.name), str)

    def test_class_has_mapped_to_right_table(self):
        self.assertEqual(getattr(Staff, '__table__').name, 'staff')

    def test_create(self):
        current_count = Staff.all().count()
        Staff.create("New Person")
        self.assertEqual(Staff.all().count(), current_count + 1)
示例#3
0
 def save(self, request):
     user = super(SignupStaffForm, self).save(request)
     staff = Staff()
     staff.account_core = CustomUser.objects.filter(
         email=self.cleaned_data['email'])[0]
     staff.name = self.cleaned_data['name']
     staff.furigana = self.cleaned_data['furigana']
     staff.position = self.cleaned_data['position']
     staff.address = self.cleaned_data['address']
     staff.tel = self.cleaned_data['tel']
     staff.save()
     return user
示例#4
0
 def post(self):
     auth_t = auth_token(request)
     if auth_t:
         resp = User.decode_auth_token(auth_t)
         u = User.query.filter_by(vid=resp).first()
         req = request.get_json()
         if u.super():
             st = Staff.query.filter_by(vid=req.get('vid'),
                                        team=req.get('team')).first()
             if st is not None:
                 st.level = req.get('level')
                 db.session.commit()
                 responseObject = {
                     'status': 'success',
                     'message': 'Upgraded Staff Level'
                 }
                 return jsonify(responseObject)
             else:
                 st = Staff(vid=req.get('vid'),
                            team=req.get('team'),
                            level=req.get('level'))
                 db.session.add(st)
                 db.session.commit()
                 responseObject = {
                     'status': 'success',
                     'message': 'Upgraded to Staff'
                 }
                 return jsonify(responseObject)
示例#5
0
def register():
    form = RegisterForm(
        MultiDict({
            **request.form.to_dict(),
            **request.files.to_dict()
        }))
    if form.validate():
        staff = Staff(number=form.number.data,
                      name=form.name.data,
                      branch=form.branch.data,
                      duty=form.duty.data)

        img = cv2.imdecode(np.fromstring(form.img.data.read(), np.uint8),
                           cv2.IMREAD_COLOR)
        emd = bytes(json.dumps(face_model.get_embedding(img).tolist()),
                    encoding='utf-8')
        try:
            db.session.add(staff)
            db.session.commit()
        except Exception:
            db.session.rollback()
            return make_response(jsonify({'msg': '写入数据库失败: add staff'}), 400)
        sid = Staff.query.filter_by(number=form.number.data).first().id
        embedding = Embedding(sid=sid, emd=emd)
        try:
            db.session.add(embedding)
            db.session.commit()
        except Exception:
            db.session.rollback()
            return make_response(jsonify({'msg': '写入数据库失败: add embedding'}),
                                 400)
        face_model.update_facebank()
        return make_response(jsonify({'msg': '注册成功'}))
    else:
        return make_response(jsonify({'msg': '参数验证失败'}), 400)
示例#6
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('dashboard', username=current_user.username))
    form = StaffRegister()
    ran = str(random.randint(100000, 900000))
    #j= json.dumps(ran)
    if form.validate_on_submit():

        #form.emp_no.data=ran
        date1 = str(form.dob.data)
        pas = str(generate_password_hash(form.confirm.data))
        staff = Staff(emp_no=ran,
                      dob=date1,
                      name=form.name.data,
                      username=form.username.data,
                      gender=form.gender.data,
                      email=form.email.data,
                      phone=form.telephone.data,
                      adress=form.address.data,
                      position=form.position.data,
                      password_harsh=pas)
        #staff.set_password(form.confirm.data)
        db.session.add(staff)
        db.session.commit()
        return redirect(url_for('login'))
    return render_template('staff_register.html',
                           title='E-Restaurant | Register',
                           form=form,
                           ran=ran)
示例#7
0
def engineering_add():
    form = ItemForm()
    if form.validate_on_submit():
        data = form.data
        ensure = Item.query.filter_by(item_id=data["item_id"]).count()
        if ensure == 1:
            flash("工程号已存在!", "err")
            return redirect(url_for('main.engineering_add'))
        file_url = secure_filename(form.bridge.data.filename)
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")
        bridge = change_filename(file_url)
        form.bridge.data.save(app.config["UP_DIR"] + bridge)
        item = Item(item_id=data["item_id"],
                    item_name=data["name"],
                    item_loc=data["location"],
                    item_manager=data["manager"],
                    item_starttime=data["time"],
                    bridge=bridge)
        db.session.add(item)
        db.session.commit()
        staff = Staff(item_id=data["item_id"],
                      staff_name=data["staff_name"],
                      staff_phone=data["staff_rel"])
        db.session.add(staff)
        db.session.commit()
        flash("添加工程成功!", "ok")
        return redirect(url_for('main.engineering_add'))
    return render_template("engineering_add.html", form=form)
示例#8
0
 def save(self, request):
     user = super(SignupStaffForm, self).save(request)
     staff = Staff()
     staff.account_core = CustomUser.objects.filter(email=self.cleaned_data['email'])[0]
     staff.first_name = self.cleaned_data['first_name']
     staff.last_name = self.cleaned_data['last_name']
     staff.tel = self.cleaned_data['tel']
     staff.save()
     return user
示例#9
0
 def test_get_people(self):
     office = Office.create("office1")
     staff = Staff.create("New Staff")
     fellow = Fellow.create("New Fellow")
     staff.add_to_room(office)
     fellow.add_to_room(office)
     self.assertIn(fellow, office.get_people().all())
     self.assertIn(staff, office.get_people().all())
示例#10
0
def addStaff():
    form = StaffForm()
    if request.method == 'POST' and form.validate_on_submit():
        s = Staff(request.form['title'], request.form['fname'],
                  request.form['lname'], request.form['position'])
        db.session.add(s)
        db.session.commit()
        flash('Added Staff Member successfully', 'success')
        return redirect(url_for('staffMembers'))
    return render_template('staff_form.html', form=form)
示例#11
0
def populate_staff():
	#This will populate the db with the staff.
	data = [(u'Joe', u'Bloggs',1998,10,10,u'07400232054',u'12 This Street',u'DE23 6L1',u'QQ123456A'),
	(u'Jane', u'Doe', 1997,11,11,u'07400232055',u'16 Another Place',u'DE23 6L2',u'QQ123456B'),
	(u'Ralph', u'Billings',1990,12,12,u'07400232056',u'12 Lovely Place',u'DE23 6L3',u'QQ123456D'),
	(u'Name', u'McNameface',1992,9,9,u'07400232057',u'36 Great Road',u'DE23 6L4',u'QQ123456C')]

	for d in data:
		staff = Staff(staff_f_name=d[0], staff_s_name=d[1],staff_dob=datetime.date(d[2],d[3],d[4])
		,staff_mobile=d[5],staff_address=d[6],staff_postcode=d[7],staff_ni=d[8])
		db.session.add(staff)
	db.session.commit()
示例#12
0
def staff_add_post():
    password = request.form.get('add-password')
    staff = Staff(staffid=request.form.get('add-staffid'),
                  staffname=request.form.get('add-staffname'),
                  phone=request.form.get('add-phone'),
                  idcard=request.form.get('add-idcard'),
                  salary=request.form.get('add-salary'),
                  job=request.form.get('add-job'),
                  age=request.form.get('add-age'),
                  password=request.form.get('add-password'),
                  gender=request.form.get('add-gender'),
                  role_id='4')
    db.session.add(staff)
    db.session.commit()
    return redirect(url_for('staff.staff_message'))
示例#13
0
def add_staff():
    form = AddStaffForm()
    if form.validate_on_submit():
        staff = Staff(staff_id=form.staff_id.data,
                      name=form.name.data,
                      ip=form.ip.data,
                      mac=form.mac.data,
                      method=form.method.data)
        try:
            db.session.add(staff)
            db.session.commit()
            flash('Congratulations, you have added the staff!')
        except exc.IntegrityError:
            db.session.rollback()
            flash('Could not add the staff, repeated values!')
        return redirect(url_for('add_staff'))
    return render_template('add.html', title='Add Staff', form=form)
示例#14
0
    def register_staff(self, model: RegisterStaffDto):
        staff = Staff()
        staff.department = model.department
        staff.role = model.role
        staff.date_of_employment = model.date_of_employment
        user = User.objects.create_user(username=model.username,
                                        email=model.email,
                                        password=model.password)
        user.first_name = model.first_name
        user.last_name = model.last_name
        user.email = model.email

        user.save()

        staff.user = user

        staffs = Group.objects.get(name__exact='staffs')
        user.groups.add(staffs)

        staff.save()
示例#15
0
def stfSignup():
    form = StaffRegisterForm()
    if form.validate_on_submit():
        data = form.data
        if data["password"] != data["passwordtwo"]:
            flash("密码不一致")
            return redirect(url_for("home.stfSignup"))
        staff = Staff.query.filter_by(username=data["username"]).count()
        if staff == 1:
            flash("The username already exists!")
            return redirect(url_for("home.stfSignup"))
        staff = Staff(
            username=data["username"],
            password=generate_password_hash(data["password"]),
            airline_name=data["airline_name"]
        )
        db.session.add(staff)
        db.session.commit()
        flash("Registration success!")
        return redirect(url_for("home.login"))
    return render_template("home/staffsignup.html",form=form)
示例#16
0
 def setUp(self):
     Base.metadata.create_all(engine)
     self.staff = Staff(name="Some Name")
     self.staff.save()
示例#17
0
def createStaff(request):
    """
    add a staff
    """
    if request.method=="POST":
        myDict = dict(request.POST.iterlists())
        userName=myDict['UserName'][0].strip()
        passWord=myDict['Password'][0].strip()
        passWord2=myDict['Password2'][0].strip()
        realName=myDict['RealName'][0].strip()
        content=myDict['Remark'][0].strip()
        gender=int(myDict['Gender'][0].strip())
        groupList=request.POST.getlist('Group')
        calendarDispList=request.POST.getlist('setCalendarDisp')
        if(userName==''):# info error
            messages.error(request, '用户名不能为空')
            return False,myDict
        if(len(userName)>50):# info error
            messages.error(request, '用户名不能大于50个字符')
            return False,myDict
        if(passWord==''):# info error
            messages.error(request, '密码不能为空')
            return False,myDict
        if(realName==''):# info error
            messages.error(request, '姓名不能为空')
            return False,myDict
        if(len(realName)>50):# info error
            messages.error(request, '姓名不能大于50个字符')
            return
        if(passWord!=passWord2):# info error
            messages.error(request, '两次密码输入不一致')
            return False,myDict
        if(User.objects.filter(username=userName).count()!=0):#same user
            messages.error(request, '用户名已存在')
            return False,myDict
        if(Staff.objects.filter(name=realName).count()!=0):#same realName
            messages.error(request, '姓名已存在')
            return False,myDict
        if(not myDict.get('Role')):
            messages.error(request, '权限不能为空')
            return False,myDict
        roleID=myDict['Role'][0].strip()
        md5Password=hashlib.md5(passWord).hexdigest()[8:-8]
        user=User(username=userName,password=md5Password)
        #user.set_password(user.password)#hash password
        #password = make_password(passWord,'md5')
        user.save()
        role =Role.objects.get(id=roleID)
        mS=Staff(user=user,name=realName,role=role,gender=gender,content=content)
        mS.save()
        if(groupList!=''):
            for groupItem in groupList:
                g=Group.objects.get(id=groupItem)
                mS.group.add(g)
        if(calendarDispList!=''):
            for staffID in calendarDispList:
                staff=Staff.objects.get(id=int(staffID))
                mS.visibleStaff.add(staff)
        mS.visibleStaff.add(mS)
        mS.save()
        cache.clear()
        messages.success(request, '添加成功')
    return True,''
示例#18
0
 def test_create(self):
     current_count = Staff.all().count()
     Staff.create("New Person")
     self.assertEqual(Staff.all().count(), current_count + 1)