Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import g
- from flask.views import View
- class BaseController(View):
- """Base Controller
- The base controller of this module, it shows how to make
- 'class based controller' with 'Flask Pluggable view'.
- You can make controller inherited from BaseController
- not from Flask.View
- class ExampleController(BaseController):
- # your methods
- """
- methods = []
- decorators = []
- def is_form_valid(self, form):
- """Validate form
- It wraps the flask-wtf `validate_on_submit`, it needs flask-wtf
- form object to be passed in.
- """
- return form.validate_on_submit()
- def get_site_data(self):
- """Placeholder of site data
- It gets site data from `site_setting` decorator.
- """
- return g.school
- def dispatch_request(self):
- pass
- from flask import g, flash, url_for
- from flask.views import View
- from openedoo.core.libs import (Blueprint, render_template, request, redirect,
- session)
- from openedoo.core.libs.tools import (hashing_werkzeug, check_werkzeug,
- session_encode)
- from modules.module_employee.forms import LoginForm, AddEmployeeForm, flash_errors
- from .base_controller import BaseController
- from modules.module_employee.views.decorators import site_setting, login_required
- from modules.module_employee import models as model
- class EmployeeLogin(BaseController):
- """Employee login controller."""
- methods = ['GET', 'POST']
- decorators = [site_setting]
- def dispatch_request(self):
- loginForm = LoginForm()
- isFormValid = self.is_form_valid(loginForm)
- if isFormValid:
- username = request.form['username']
- password = request.form['password']
- employee = model.Employee.query.filter_by(username=username).first()
- if employee and check_werkzeug(employee.password, password):
- encodeUsername = session_encode(employee.username)
- session['username'] = encodeUsername
- return redirect(url_for('module_employee.dashboard'))
- flash(u'Username or password did not match.', 'error')
- flash_errors(loginForm)
- return render_template('admin/login.html',
- school=self.get_site_data(),
- form=loginForm)
- class EmployeeLogout(BaseController):
- """Employee logout controller."""
- methods = ['GET']
- decorators = [site_setting, login_required]
- def dispatch_request(self):
- session['username'] = False
- return render_template('admin/logout.html', school=self.get_site_data())
- class AddEmployee(BaseController):
- """Add employee controller.
- A new employee can only be added by existing employee.
- """
- methods = ['GET', 'POST']
- decorators = [site_setting, login_required]
- def dispatch_request(self):
- addEmployeeForm = AddEmployeeForm()
- isAddEmployeeValid = self.is_form_valid(addEmployeeForm)
- if isAddEmployeeValid:
- employee = {
- 'username': request.form['username'],
- 'fullname': request.form['fullname'],
- 'password': hashing_werkzeug(request.form['password']),
- 'nip': request.form['nip'],
- 'created': datetime.datetime.now()
- }
- employeeData = User(employee)
- db.session.add(employeeData)
- db.session.commit()
- flash(u'Employee Successfully Added.')
- return redirect(url_for('module_employee.dashboard'))
- else:
- flash_errors(addEmployeeForm)
- # A flag to show admin in the navigation bar
- showAdminNav = True
- return render_template('admin/add-employee.html',
- form=addEmployeeForm,
- school=self.get_site_data(),
- showAdminNav=showAdminNav)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement