Beispiel #1
0
def create_user():
    db = get_db()
    jobs = user_model.get_all_job(db)
    companys = user_model.get_all_company(db)
    status = user_model.get_all_status(db)

    if request.method == 'POST':
        login_name = request.form['login_name']
        password = request.form['password']
        really_name = request.form['really_name']
        phone = request.form['phone']
        job_id = request.form['job_id']
        company_id = request.form['company_id']
        status = request.form['status']
        print(login_name, password, really_name,
              phone, job_id, company_id, status)
        login_name_existed = user_model.login_name_existed(db, login_name)

        error = None
        if login_name_existed:
            error = 'Login name is existed'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            user_model.create_user(db, login_name, password, really_name,
                                   phone, job_id, company_id, status)
            return redirect(url_for('user_center.index'))
    return render_template('user_center/user_create.html',
                           jobs=jobs, companys=companys, status=status)
Beispiel #2
0
def update_user(user_id):
    user = get_user(user_id)
    db = get_db()
    jobs = user_model.get_all_job(db)
    companys = user_model.get_all_company(db)
    status = user_model.get_all_status(db)

    if request.method == 'POST':
        login_name = request.form['login_name']
        # password = request.form['password']
        really_name = request.form['really_name']
        phone = request.form['phone']
        job_id = request.form['job_id']
        company_id = request.form['company_id']
        status = request.form['status']
        error = None
        if not login_name:
            error = 'Login name can\'t be null'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            user_model.update_user(db, user_id, really_name,
                                   phone, job_id, company_id, status)
            return redirect(url_for('user_center.index'))

    return render_template('user_center/user_update.html', user=user,
                           jobs=jobs, companys=companys, status=status)
Beispiel #3
0
def index():
    if session.get('job_id') == 0:
        db = get_db()
        users = user_model.get_all_user(db)
        return render_template('user_center/index.html', users=users)
    else:
        db = get_db()
        posts = blog_model.get_all_posts(db)
        return render_template('blog/index.html', posts=posts)
Beispiel #4
0
def create_application():
    db = get_db()
    auditor = attendance_model.get_auditor_by_id(db, g.user['id'])
    types = attendance_model.get_application_type(db)
    default_date = attendance_model.default_date()
    if request.method == 'POST':
        application_nbr = 'L{}{}'.format(
            datetime.datetime.now().strftime('%Y%m%d'),
            random.randint(1000, 9999))
        application_type = request.form['application_type']
        begin_date = request.form['begin_date']
        end_date = request.form['end_date']
        duration_time = request.form['duration_time']
        application_reason = request.form['application_reason']
        auditor_id = request.form['auditor_id']
        if application_type == str(cfg.leave_type):
            last_application = attendance_model.get_application_by_id(
                db, g.user['id'], cfg.leave_type)
        else:
            last_application = attendance_model.get_application_by_id(
                db, g.user['id'], cfg.overtime_type)
        error = None

        r = re.compile('^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$')
        r2 = re.compile('^\d+$')
        if not r.findall(begin_date):
            error = 'Begin Date must like: 2019-08-07 11:00:00'
        if not r.findall(end_date):
            error = 'End Date must like: 2019-08-07 11:00:00'
        if not r2.findall(str(duration_time)):
            error = 'Duration time Must be a number'
        if (datetime.datetime.strptime(begin_date, '%Y-%m-%d %H:%M:%S') >=
                datetime.datetime.strptime(end_date, '%Y-%m-%d %H:%M:%S')):
            error = 'Begin date must less than the end date'
        for application in last_application:
            if application is not None:
                last_end_date = application['end_date']
                if last_end_date >= datetime.datetime.strptime(
                        begin_date, '%Y-%m-%d %H:%M:%S'):
                    error = 'You have an application which with a deadline on {}'.format(
                        last_end_date)
        if error is not None:
            flash(error)
        else:
            db = get_db()
            attendance_model.create_application(db, application_nbr,
                                                application_type, g.user['id'],
                                                begin_date, end_date,
                                                duration_time,
                                                application_reason, auditor_id)
            return redirect(url_for('attendance.index'))

    return render_template('attendance/create.html',
                           auditor=auditor,
                           default_date=default_date,
                           types=types)
Beispiel #5
0
def index():
    db = get_db()
    if g.user['job_id'] == 0:
        attendance = attendance_model.get_all_application(db)
    else:
        attendance = attendance_model.get_all_application(db, g.user['id'])
    return render_template('attendance/index.html', attendance=attendance)
Beispiel #6
0
def register():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        db = get_db()
        error = None

        if not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        elif db.execute(
                'SELECT id FROM user WHERE login_name = ?', (username,)
        ).fetchone() is not None:
            error = 'User {} is already registered.'.format(username)

        if error is None:
            db.execute(
                'INSERT INTO user (login_name, password) VALUES (?, ?)',
                (username, generate_password_hash(password))
            )
            db.commit()
            return redirect(url_for('auth.login'))

        flash(error)

    return render_template('auth/register.html')
Beispiel #7
0
def delete_user(user_id):
    if user_id == 1:
        abort(404, "User can't be deleted.".format(user_id))
    else:
        get_user(user_id)
        db = get_db()
        user_model.delete_user(db, user_id)
    return redirect(url_for('user_center.index'))
Beispiel #8
0
def delete_job(job_id):
    if job_id == 0:
        abort(404, "Job id {0} can't be deleted.".format(job_id))
    else:
        get_job(job_id)
        db = get_db()
        user_model.delete_job(db, job_id)
    return redirect(url_for('user_center.job'))
Beispiel #9
0
def delete_company(company_id):
    if company_id == 0:
        abort(404, "Company id {0} can't be deleted.".format(company_id))
    else:
        get_company(company_id)
        db = get_db()
        user_model.delete_company(db, company_id)
    return redirect(url_for('user_center.company'))
Beispiel #10
0
def load_logged_in_user():
    user_id = session.get('user_id')

    if user_id is None:
        g.user = None
    else:
        g.user = get_db().execute(
            'SELECT * FROM user WHERE id = ?', (user_id,)
        ).fetchone()
Beispiel #11
0
def get_post(post_id, check_author=True):
    post = blog_model.get_post_by_id(get_db(), post_id)

    if post is None:
        abort(404, "Post id {0} doesn't exist.".format(post_id))

    if check_author and post['author_id'] != g.user['id']:
        abort(403)

    return post
Beispiel #12
0
def create_job():
    db = get_db()
    jobs = user_model.get_all_job(db)
    if request.method == 'POST':
        job_name = request.form['name']
        superior_id = request.form['superior_id']
        job_desc = request.form['desc']
        error = None

        if not job_name:
            error = 'Title is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            user_model.create_job(db, job_name, superior_id, job_desc)
            return redirect(url_for('user_center.job'))

    return render_template('user_center/job_create.html', jobs=jobs)
Beispiel #13
0
def update_user_password(user_id):
    user = get_user(user_id)
    if request.method == 'POST':
        new_password = request.form['new_password']
        if g.user['job_id'] == 0:
            db = get_db()
            user_model.update_password(db, user_id, new_password)
            return redirect(url_for('user_center.index'))

        old_password = request.form['old_password']
        error = None
        db = get_db()
        check_old_psd = user_model.check_old_password(db, user_id, old_password)
        if not check_old_psd:
            error = 'Old password is error'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            user_model.update_password(db, user_id, new_password)
            return redirect(url_for('user_center.index'))

    return render_template('user_center/user_update_password.html', user=user)
Beispiel #14
0
def create():
    if request.method == 'POST':
        title = request.form['title']
        body = request.form['body']
        error = None

        if not title:
            error = 'Title is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            blog_model.create_posts(db, g.user['id'], title, body)
            return redirect(url_for('blog.index'))

    return render_template('blog/create.html')
Beispiel #15
0
def create_company():

    if request.method == 'POST':
        company_name = request.form['name']
        company_desc = request.form['desc']
        error = None

        if not company_name:
            error = 'Name is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            user_model.create_company(db, company_name, company_desc)
            return redirect(url_for('user_center.company'))

    return render_template('user_center/company_create.html')
Beispiel #16
0
def update(post_id):
    post = get_post(post_id)

    if request.method == 'POST':
        title = request.form['title']
        body = request.form['body']
        error = None

        if not title:
            error = 'Title is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            blog_model.update_post(db, post_id, title, body)
            return redirect(url_for('blog.index'))

    return render_template('blog/update.html', post=post)
Beispiel #17
0
def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        db = get_db()
        error = None
        user = db.execute(
            'SELECT * FROM user WHERE login_name = ?', (username,)
        ).fetchone()

        if user is None:
            error = 'Incorrect username.'
        elif not check_password_hash(user['password'], password):
            error = 'Incorrect password.'

        if error is None:
            session.clear()
            session['user_id'] = user['id']
            session['job_id'] = user['job_id']
            return redirect(url_for('index'))

        flash(error)

    return render_template('auth/login.html')
Beispiel #18
0
def delete(post_id):
    get_post(post_id)
    db = get_db()
    blog_model.delete_post(db, post_id)
    return redirect(url_for('blog.index'))
Beispiel #19
0
def get_job(job_id):
    db = get_db()
    job = user_model.get_job_by_id(db, job_id)
    if job is None:
        abort(404, "Job id {0} doesn't exist.".format(id))
    return job
Beispiel #20
0
def index():
    db = get_db()
    posts = blog_model.get_all_posts(db)
    return render_template('blog/index.html', posts=posts)
Beispiel #21
0
def auditor_application(application_id, status):
    db = get_db()
    attendance_model.auditor_application(db, application_id, status)
    return redirect(url_for('attendance.index'))
Beispiel #22
0
def get_user(user_id):
    db = get_db()
    user = user_model.get_user_by_id(db, user_id)
    if user is None:
        abort(404, "Job id {0} doesn't exist.".format(id))
    return user
Beispiel #23
0
def recall_application(application_id):
    db = get_db()
    attendance_model.recall_application(db, application_id)
    return redirect(url_for('attendance.index'))
Beispiel #24
0
def job():
    db = get_db()
    jobs = user_model.get_all_job(db)
    return render_template('user_center/job.html', jobs=jobs)
Beispiel #25
0
def get_company(company_id):
    db = get_db()
    company = user_model.get_company_by_id(db, company_id)
    if company is None:
        abort(404, "Company id {0} doesn't exist.".format(company_id))
    return company
Beispiel #26
0
def company():
    db = get_db()
    companys = user_model.get_all_company(db)
    return render_template('user_center/company.html', companys=companys)