# coding=utf-8 from django.conf import settings from django.contrib.auth.decorators import login_required from django.shortcuts import redirect, render from django.utils.decorators import method_decorator from django.views.generic.base import ContextMixin from notifications import get_notifications from ..models import Worker handler404 = 'web.views.e404_page_not_found' handler500 = 'web.views.e500_error' handler403 = 'web.views.e403_permission_denied' handler400 = 'web.views.e400_bad_request' def index(request): if request.user.is_authenticated(): return redirect('web.views.appointments') return redirect(getattr(settings, "LOGIN_URL")) def e404_page_not_found(request, context=None): return render(request, "errors/404.html", context, status=404) def e500_error(request, context=None): return render(request, "errors/500.html", context, status=500) def e403_permission_denied(request, context=None): return render(request, "errors/403.html", context, status=403) def e400_bad_request(request, context=None): return render(request, "errors/400.html", context, status=400) @login_required def wrap_response(request, template, params): final_params = extend_context(params, request) return render(request, template, final_params) def extend_context(params, request): person, role = Worker.get_details(request.user) notifications = get_notifications(request.user) final_params = params.copy() final_params.update({ 'person': person, 'role': role, 'notifications': notifications }) return final_params @method_decorator(login_required, name='dispatch') class WrappedView(ContextMixin): def get_context_data(self, **kwargs): context = super(WrappedView, self).get_context_data(**kwargs) return extend_context(context, self.request) def dispatch(self, *args, **kwargs): return super(WrappedView, self).dispatch(*args, **kwargs) import auth import appointment import visit import doctor import subject import equipment import kit import mails import statistics import export import contact_attempt import configuration_item import language import voucher import voucher_type import voucher_type_price import redcap import uploaded_files