def login(request): """ Return a Login page """ if request.user.is_authenticated: sweetify.info(request, "You are already logged in!", button='OK', timer=3000) return redirect(reverse('index')) if request.method == "POST": login_form = UserLoginForm(request.POST) if login_form.is_valid(): user = auth.authenticate(username=request.POST['username'], password=request.POST['password']) if user: auth.login(user=user, request=request) sweetify.success(request, "You have successfully logged in!") if request.GET.get('next', False): return HttpResponseRedirect(request.GET.get('next')) else: return redirect(reverse('index')) else: login_form.add_error( None, "Your username or password is incorrect!") else: login_form = UserLoginForm() return render(request, 'login.html', {"login_form": login_form})
def register_view(request): """ View for users to register a new account. Renders registration form and once submit button clicked checks if it's valid. Yes - saves user, No - highlights errors. """ if request.user.is_authenticated: sweetify.info(request, title="You are already logged in.", icon="info") return redirect('home') if request.method == 'POST': form = UserRegistrationForm(request.POST) if form.is_valid(): form.save() sweetify.info(request, title="You have been successfully registered.", icon="success") return redirect('login') else: form = UserRegistrationForm() context = { "form": form, "title": 'Registration Page', } return render(request, 'register.html', context)
def contact(request): # Directs the customer to a contact us form if request.method == 'GET': form = ContactForm() else: form = ContactForm(request.POST) if form.is_valid(): subject = form.cleaned_data['subject'] from_email = settings.EMAIL_HOST_USER email_address = form.cleaned_data['email_address'] message = form.cleaned_data['message'] to_list = [email_address] send_mail( subject, message, from_email, to_list, fail_silently=False) sweetify.info( request, """We\'ve received your message, and shall be back with you shortly""") return redirect('products') context = {'contact_form': form} return render(request, 'contact.html', context)
def dispatch(self, request, *args, **kwargs): logout(request) next_page = self.success_url if next_page: info(request, '¡Se ha cerrado la sesión!', toast=True, position='top', timer=2500) return HttpResponseRedirect(next_page) return super().dispatch(request, *args, **kwargs)
def delete(request, fabric_id): try: fabrics = maas.get_fabrics(fabric_id) if not fabrics: sweetify.info(request, _('Data Fabric not Found...'), timer=5000) return redirect('maas:fabrics:index') m = MAAS() fabric_id = fabrics[0]['id'] resp = m.delete(f'/fabrics/{fabric_id}/') if resp.status_code in m.ok: sweetify.sweetalert(request, 'Success', text=_('Data Successfully Deleted'), button='OK', icon='success', timer=200) return redirect('maas:fabrics:index') sweetify.sweetalert(request, 'Warning', icon='warning', text=_(str(resp.text)), timer=5000) except (MAASError, ConnectionError, TimeoutError) as e: sweetify.sweetalert(request, 'Warning', text=str(e), icon='error', button='Ok', timer=5000) return redirect('maas:fabrics:index')
def edit_designation(request, designation_id): if request.user.is_superuser: if request.method == 'POST': designation_update = Designation.objects.filter(pk=designation_id) designation_update.update( title=request.POST['title'], time_in=request.POST['time_in'], time_out=request.POST['time_out'], lateness_benchmark=request.POST['lateness_benchmark'], ) sweetify.info(request, f'Designation updated successfully!', button='Ok', timer=3000) return redirect("designation") else: designations = Designation.objects.all() designation_edit = get_object_or_404(Designation, pk=designation_id) context = { 'designations': designations, 'designation_edit': designation_edit, 'page_title': f'Edit {designation_edit.title}' } return render(request, 'admin-dashboard/designation.html', context) if not request.user.is_superuser: sweetify.info(request, 'Welcome back', button='Ok', timer=3000) return redirect("employee_dashboard")
def form_valid(self, form): login(self.request, form.get_user()) info(self.request, '¡Bienvenido(a) {}!'.format(self.request.user.first_name), toast=True, position='top', timer=2500) return HttpResponseRedirect(self.get_success_url())
def delete_task(request, task_id): employee_task = get_object_or_404(Task, pk=task_id) if request.method == "POST": employee_task.delete() sweetify.info(request, "Task Deleted Successfully", button='Ok', timer=3000) return redirect("all_employees")
def logout_view(request): """ Function that logs user out and redirects to the home page. """ auth.logout(request) sweetify.info(request, icon='success', title='You have been successfully logged out') return redirect(reverse('home'))
def employee_profile(request): if not request.user.is_superuser: form = PasswordChangeForm(request.user) return render(request, 'employee-dashboard/profile.html', { 'form': form, 'page_title': 'Profile' }) if request.user.is_superuser: sweetify.info(request, 'Welcome back', button='Ok', timer=3000) return redirect("admin_dashboard")
def get(self, request, name, id): role = Group.objects.get(name=name) user = User.objects.get(id=id) user.is_admin = False user.save() user.groups.remove(role) # messages.warning(request,f"{user} is removed from {role} ") sweetify.info(self.request, f"{user} is removed from {role} ", button='Ok', timer=3000) return redirect('/usertorole/' + str(role))
def all_employees(request): if request.user.is_superuser: all_employees = User.objects.filter(is_superuser=0) # print(all_employees) return render(request, 'admin-dashboard/all-employees.html', { 'all_employees': all_employees, 'page_title': 'All Employees' }) if not request.user.is_superuser: sweetify.info(request, 'Welcome back', button='Ok', timer=3000) return redirect("employee_dashboard")
def checkout(request): try: if request.user.is_authenticated: grandtotal = 0 if request.method == 'POST': if 'quantity_minus' in request.POST: try: cart = Order.objects.get( pk=request.POST['quantity_minus']) if cart.order_quantity == 1: cart.delete() else: cart.order_quantity = cart.order_quantity - 1 cart.order_price = cart.menu.item_price * cart.order_quantity cart.save() except Exception as e: print(e) if 'quantity_plus' in request.POST: try: cart = Order.objects.get( pk=request.POST['quantity_plus']) if cart.order_quantity < 10: cart.order_quantity = cart.order_quantity + 1 cart.order_price = cart.menu.item_price * cart.order_quantity cart.save() except Exception as e: print(e) if 'deleteitem' in request.POST: try: Order.objects.get( pk=request.POST['deleteitem']).delete() sweetify.info(request, 'one item removed', timer=1000) except Exception as e: print(e) ordertable = Order.objects.filter(order_status='CART', customer=request.user).order_by( 'menu__item_shop__pk', 'pk') shop = ordertable.distinct('menu__item_shop').all() print(shop) for amt in ordertable: grandtotal = grandtotal + amt.order_price context = { 'ordertable': ordertable, 'grandtotal': grandtotal, 'shop': shop } return render(request, 'checkout.html', context) else: return redirect('/') except Exception as e: print(e)
def login_success(request): organizacion = Organizacion.objects.filter(usuario=request.user)[:1].get() if organizacion.tyc_leido: return redirect("home") else: module_dir = os.path.dirname(__file__) file_path = os.path.join(module_dir, 'tyc/tyc.txt') with open(file_path, 'r') as file: tyc = file.read() sweetify.info(request, 'Términos y Condiciones', text=tyc, persistent='Estoy de acuerdo!') organizacion.tyc_leido = True organizacion.save() return redirect("home")
def custom_range(request): if request.user.is_superuser: start_date = request.GET['start_date'] end_date = request.GET['end_date'] if start_date == '' or end_date =='': sweetify.info(request, 'You have to select both dates', button='Ok', timer=3000) return redirect("admin_dashboard") employee_count=len(User.objects.filter(is_superuser = 0)) today = datetime.date.today() last_week = today - datetime.timedelta(days=7) yesterday = today - datetime.timedelta(days=1) new_end_date = datetime.datetime.strptime(end_date, '%Y-%m-%d').date() + datetime.timedelta(days=1) record_day_clock_in = len(Attendance.objects.filter(created__range=(start_date, new_end_date) ,status='Signed In')) record_day_clock_out = len(Attendance.objects.filter(created__range=(start_date, new_end_date) ,status='Signed Out')) late=len(Attendance.objects.filter(created__range=(start_date, new_end_date), late=True)) context = { 'employee_count':employee_count, 'record_day_clock_in':record_day_clock_in, 'record_day_clock_out':record_day_clock_out, 'today':today, 'start_date':start_date, 'end_date':end_date, 'last_week':last_week, 'yesterday':yesterday, 'late':late, 'page_title':'Dashboard', } return render(request, 'admin-dashboard/index.html', context) # datetime_str_1 = '12:55:26' # datetime_str_2 = '08:30:00' # datetime_object_1 = datetime.datetime.strptime(datetime_str_1, '%H:%M:%S').time() # datetime_object_2 = datetime.datetime.strptime(datetime_str_2, '%H:%M:%S').time() # datetime_object_3 = datetime.datetime.combine(datetime.datetime.now(), datetime_object_1) # datetime_object_4 = datetime.datetime.combine(datetime.datetime.now(), datetime_object_2) # print(datetime_object_1) # print(datetime_object_2) # print(datetime_object_3) # print(datetime_object_4) # print() # print (timeago.format(datetime_object_4, datetime_object_3))
def employee_dashboard(request): if not request.user.is_superuser: attendance = Attendance.objects.filter( user_id=request.user).order_by('-created') tasks = Task.objects.filter(user_id=request.user).order_by('-created') pending_tasks = Task.objects.filter(user_id=request.user, status=False) count_pending_tasks = len(pending_tasks) context = { 'attendance': attendance, 'tasks': tasks, 'count_pending_tasks': count_pending_tasks, 'page_title': 'Dashboard' } return render(request, 'employee-dashboard/index.html', context) if request.user.is_superuser: sweetify.info(request, 'Welcome back', button='Ok', timer=3000) return redirect("admin_dashboard")
def add_task(request, user_id): if request.user.is_superuser: employee = get_object_or_404(User, pk=user_id) if request.method == "POST": user_id = request.POST['employee_id'] task = request.POST['task'] priority = request.POST['priority'] task = Task.objects.create( user_id=user_id, task=task, priority=priority, ) task.save() env = environ.Env() environ.Env().read_env() TWILIO_NUMBER = env("TWILIO_NUMBER") # client credentials are read from TWILIO_ACCOUNT_SID and AUTH_TOKEN twilio = Client() twilio.messages.create( from_=TWILIO_NUMBER, to='whatsapp:+2347030102959', body=f'New Task Added. {task}. The task is marked as {priority}' ) sweetify.info(request, f"Task added to {employee.username} Successfully", button='Ok', timer=3000) return redirect("all_employees") context = { "employee": employee, 'page_title': f'Add Task to {employee.username}', } return render(request, 'admin-dashboard/tasks.html', context) if not request.user.is_superuser: return render(request, 'employee-dashboard/index.html')
def loginPage(request): form = LoginForm(request.POST) if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') user = authenticate(request, username=username, password=password) if user is not None and user.is_active: login(request, user) return redirect('home') else: swal.info(request, icon='error', text='Usuário e/ou senha inválidos', title='Erro') # messages.error(request, 'Usuário ou senha incorretos') context = {'form' : form} return render(request, 'login.html', context)
def view_employee(request, user_id): if request.user.is_superuser: designations = Designation.objects.all() employee = get_object_or_404(User, pk=user_id) attendance = Attendance.objects.filter( user_id=user_id).order_by('-created') tasks = Task.objects.filter(user_id=user_id).order_by('-created') context = { 'employee': employee, 'attendance': attendance, 'designations': designations, 'tasks': tasks, 'page_title': f'Viewing {employee.username}', } return render(request, 'admin-dashboard/view-employee.html', context) if not request.user.is_superuser: sweetify.info(request, 'Welcome back', button='Ok', timer=3000) return redirect("employee_dashboard")
def delete_employee(request, user_id): if request.user.is_superuser: employee = get_object_or_404(User, pk=user_id) if request.method == "POST": employee.delete() sweetify.info(request, "Employee Deleted Successfully", button='Ok', timer=3000) return redirect("all_employees") context = { "employee": employee, 'page_title': f'Deleting {employee.username}', } return render(request, 'admin-dashboard/delete-employee.html', context) if not request.user.is_superuser: sweetify.info(request, 'Welcome back', button='Ok', timer=3000) return redirect("employee_dashboard")
def register(request): if request.method == 'POST': username = request.POST['username'] email = request.POST['email'] password1 = request.POST['password1'] password2 = request.POST['password2'] if User.objects.filter(username=username).exists(): sweetify.info(request, 'Opps!', text='This Username is taken', persistent='Try Again') print('username has already been taken') return render(request, 'users/index.html') elif User.objects.filter(email=email).exists(): sweetify.info(request, 'Opps!', text='This email is already been used', persistent='Try Again') print('email has already been used') return render(request, 'users/index.html') elif password2 != password1: sweetify.info(request, 'Opps!', text='Your Passwords are not matching!', persistent='Try Again') return render(request, 'users/index.html') else: userObj = User.objects.create_user(username=username, password=password2, email=email) userObj.save() messages.success(request, 'Successfully Created!') print('created!') sweetify.sweetalert( request, 'Westworld is awesome', text='Really... if you have the chance - watch it!', persistent='I agree!') sweetify.info( request, 'You did it', text='Good job! You successfully showed a SweetAlert message', persistent='Hell yeah') return render(request, 'users/index.html') # return render(request, 'users/index.html') else: return render(request, 'users/index.html')
def intervention(request): if request.method == 'POST': technicien_id = request.POST.get('technicienaffecter') intervention_id = request.POST.get('intervconcerner') affecter = Affectation( tech=Technicien.objects.get(id=technicien_id), Inter=Intervention.objects.get(id=intervention_id)).save() get_interv = Intervention.objects.get(id=intervention_id) get_interv.etat = 2 if get_interv.save(): get_Technicien = Technicien.objects.get(id=technicien_id) get_Technicien.disponibilité = 1 if get_Technicien.save(): sweetify.info(self.request, 'Message sent', button='Ok', timer=3000) All_interv = Intervention.objects.all() Tech_list = Technicien.objects.filter(disponibilité="0").all() context = {'All_intervention': All_interv, 'Tech_list': Tech_list} return render(request, 'admins/intervention.html', context)
def admin_dashboard(request): if request.user.is_superuser: employee_count=len(User.objects.filter(is_superuser = 0)) clock_in_count=len(Attendance.objects.filter(status='Signed In')) clock_out_count=len(Attendance.objects.filter(status='Signed Out')) late=len(Attendance.objects.filter(late=True)) today = datetime.date.today() yesterday = today - datetime.timedelta(days=1) context = { 'employee_count':employee_count, 'clock_in_count':clock_in_count, 'clock_out_count':clock_out_count, 'today':today, 'yesterday':yesterday, 'late':late, 'page_title':'Dashboard', } return render(request, 'admin-dashboard/index.html', context) if not request.user.is_superuser: sweetify.info(request, 'Welcome back', button='Ok', timer=3000) return redirect("employee_dashboard")
def login_view(request): redirect_to = urllib.parse.unquote(request.GET.get('next', 'home')) form = AccountAuthenticationForm # Check if the form is a get method if request.method == "GET": context = {'form': form} return render(request, 'registration/login.html', context) user = request.user if user.is_authenticated: return redirect("home") if request.method == 'POST': form = AccountAuthenticationForm(request.POST) if form.is_valid(): email = request.POST['email'] password = request.POST['password'] user = authenticate(email=email, password=password) if user: login(request, user) if request.user.is_admin or request.user.is_human_resources or request.user.is_staff: return redirect(redirect_to) else: if request.user.profile.birth_date is None or request.user.profile.phone_number is None or request.user.profile.sex is None: sweetify.info(request, title='Update Profile', text='Kindly complete your profile', icon='info', button='Ok', timer=5000) return redirect("profile") else: return redirect(redirect_to) else: form = AccountAuthenticationForm() return render(request, "registration/login.html", {'form': form})
def login(request): if request.method == 'POST': username = request.POST['username'] email = request.POST['email'] user = auth.authenticate(username=username, email=email) if user is not None: auth.login(request, user) sweetify.info(request, 'You did it', text='Good job! You successfully Logged In', persistent='Thanks') return render(request, 'users/index.html') else: sweetify.info(request, 'Opps!!', text='Wrong Information MayB', persistent='Try Again') return render(request, 'users/index.html') else: return render(request, 'users/index.html')
def ocultar(request, id_solicitacao): mentor = mentor_auth.get(request) if mentor is not None: if mentor.aprovado: try: solicitacao = Solicitacao.objects.get(pk=id_solicitacao) solicitacao.oculto = True solicitacao.save() sweetify.info( request, 'Solicitação removida!', text= f'A solicitação de {solicitacao.estudante.nome} não aparecerá mais para você.' ) except Solicitacao.DoesNotExist: sweetify.error(request, 'Erro!', text='Solicitação não foi encontrada!') return redirect('app_mentor_solicitacoes') else: sweetify.error( request, 'Acesso restrito!', html= '<p>Seu cadastro ainda não foi aprovado!</p><p>Por favor aguarde o contato da nossa equipe!</p>', persistent=True) return redirect('app_auth_login') else: sweetify.error( request, 'Acesso restrito!', text='Você precisa estar autenticado para acessar esta página.', button='Ok', timer=3000) return redirect('app_auth_login')
def register(request): """ Render the registration page """ if request.user.is_authenticated: sweetify.info(request, "You are already logged in", button='Ok', timer=3000) return redirect(reverse('index')) if request.method == "POST": registration_form = UserRegistrationForm(request.POST) if registration_form.is_valid(): registration_form.save() user = auth.authenticate(username=request.POST['username'], password=request.POST['password1']) if user: auth.login(user=user, request=request) sweetify.success(request, "You have successfully registered") return redirect(reverse('index')) else: sweetify.info(request, "Unable to register your account at this time!", button='Ok', timer=3000) else: # Create an instance of reg form registration_form = UserRegistrationForm() return render(request, 'registration.html', {"registration_form": registration_form}) """
def employee_update_task(request, task_id): # status = request.POST['status'] employee_id = request.POST['employee_id'] employee_task = Task.objects.filter(pk=task_id) for task in employee_task: this_status = task.status if this_status == 0: employee_task.update(status=1) sweetify.info(request, f"Task marked as complete ", button='Ok', timer=3000) return redirect('employee_dashboard') if this_status == 1: employee_task.update(status=0) sweetify.info(request, f"Task marked as incomplete ", button='Ok', timer=3000) return redirect('employee_dashboard')
def update_employee(request, user_id): if request.user.is_superuser: if request.method == 'POST': employee_update = User.objects.filter(pk=user_id) employee_update.update( last_name=request.POST['last_name'], first_name=request.POST['first_name'], email=request.POST['email'], designation_id=request.POST['designation'], gender=request.POST['gender'], mobile=request.POST['mobile'], member_since=request.POST['member_since'], # profile_image = request.FILES['profile_image'] ) sweetify.info(request, f'Employee updated successfully!', button='Ok', timer=3000) return redirect("view_employee", user_id) if not request.user.is_superuser: sweetify.info(request, 'Welcome back', button='Ok', timer=3000) return redirect("employee_dashboard")
def designations(request): if request.user.is_superuser: designations = Designation.objects.all() if request.method == 'POST': title = request.POST['title'] time_in = request.POST['time_in'] time_out = request.POST['time_out'] lateness_benchmark = request.POST['lateness_benchmark'] if Designation.objects.filter(title=title).exists(): sweetify.info(request, f'{title} already exists on the application.', button='Ok', timer=3000) return redirect("designation") else: designation = Designation.objects.create( title=title, time_in=time_in, time_out=time_out, lateness_benchmark=lateness_benchmark) designation.save() sweetify.info(request, f'Designation for {title} created successfully!', button='Ok', timer=3000) return redirect("designation") else: return render(request, 'admin-dashboard/designation.html', { 'designations': designations, 'page_title': 'Designations' }) if not request.user.is_superuser: sweetify.info(request, 'Welcome back', button='Ok', timer=3000) return redirect("employee_dashboard")