Beispiel #1
0
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})
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #5
0
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")
Beispiel #7
0
 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())
Beispiel #8
0
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")
Beispiel #9
0
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")
Beispiel #11
0
 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")
Beispiel #13
0
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)
Beispiel #14
0
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")
Beispiel #15
0
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")
Beispiel #17
0
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')
Beispiel #18
0
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')
Beispiel #22
0
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)
Beispiel #23
0
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")
Beispiel #24
0
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')
Beispiel #26
0
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')
Beispiel #27
0
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})
    """
Beispiel #28
0
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")