Example #1
0
def Add_trainer_data(request):
    view_all = Trainer.objects.all()
    success = 0
    trainer = None
    if request.method == 'POST':
        form = AddTrainerForm(request.POST, request.FILES)
        if form.is_valid():
            temp = form.save(commit=False)
            temp.first_name = request.POST.get('first_name').capitalize()
            temp.last_name = request.POST.get('last_name').capitalize()
            model_save(temp)
            success = 'Successfully Added Member'

            # Add payments if payment is 'paid'
            form = AddTrainerForm()
            trainer = Trainer.objects.last()
            print(trainer)

        context = {
            'add_success': success,
            'form': form,
            'trainer': trainer,
            'subs_end_today_count': get_notification_count(),
        }
        return render(request, 'add_trainer.html', context)
    else:
        form = AddTrainerForm()
        context = {
            'form': form,
            'subs_end_today_count': get_notification_count(),
        }
    return render(request, 'add_trainer.html', context)
Example #2
0
def view_member(request):
    view_all = Member.objects.filter(stop=0).order_by('first_name')
    paginator = Paginator(view_all, 100)
    try:
        page = request.GET.get('page', 1)
        view_all = paginator.page(page)
    except PageNotAnInteger:
        view_all = paginator.page(1)
    except EmptyPage:
        view_all = paginator.page(paginator.num_pages)
    search_form = SearchForm()
    # get all members according to their batches
    evening = Member.objects.filter(batch='evening',
                                    stop=0).order_by('first_name')
    morning = Member.objects.filter(batch='morning',
                                    stop=0).order_by('first_name')
    stopped = Member.objects.filter(stop=1).order_by('first_name')
    context = {
        'all': view_all,
        'morning': morning,
        'evening': evening,
        'stopped': stopped,
        'search_form': search_form,
        'subs_end_today_count': get_notification_count(),
    }
    return render(request, 'view_member.html', context)
Example #3
0
def members(request):
    form = AddMemberForm()
    context = {
        'form': form,
        'subs_end_today_count': get_notification_count(),
    }
    return render(request, 'add_member.html', context)
Example #4
0
def search_member(request):
    if request.method == 'POST':
        # search_form = SearchForm(request.POST)
        # first_name = request.POST.get('search')
        # check = Member.objects.filter(first_name__contains=first_name)
        # check = serializers.serialize('json', check)
        # context = {}
        # context['search'] = check
        if 'clear' in request.POST:
            return redirect('view_member')
        search_form = SearchForm(request.POST)
        result = 0
        if search_form.is_valid():
            first_name = request.POST.get('search')
            result = Member.objects.filter(first_name__contains=first_name)

        view_all = Member.objects.all()
        # get all members according to their batches
        evening = Member.objects.filter(batch='evening')
        morning = Member.objects.filter(batch='morning')

        context = {
            'all': view_all,
            'morning': morning,
            'evening': evening,
            'search_form': search_form,
            'result': result,
            'subs_end_today_count': get_notification_count(),
        }
        return render(request, 'view_member.html', context)
    else:
        search_form = SearchForm()
    return render(request, 'view_member.html', {'search_form': search_form})
Example #5
0
def SearchTrainer(request):
    if request.method == 'POST':
        if 'clear' in request.POST:
            return redirect('alltrainer')
        search_form = SearchForm(request.POST)
        result = 0
        if search_form.is_valid():
            first_name = request.POST.get('search')
            result = Trainer.objects.filter(first_name__icontains=first_name)
            print(result)

        view_all = Trainer.objects.all()
        # get all members according to their batches
        evening = Trainer.objects.filter(batch='evening')
        morning = Trainer.objects.filter(batch='morning')

        context = {
            'all': view_all,
            'morning': morning,
            'evening': evening,
            'search_form': search_form,
            'result': result,
            'subs_end_today_count': get_notification_count(),
        }
        return render(request, 'view_trainer.html', context)
    else:
        search_form = SearchForm()
    return render(request, 'view_trainer.html', {'search_form': search_form})
Example #6
0
def add_member(request):
    view_all = Member.objects.all()
    success = 0
    member = None
    if request.method == 'POST':
        form = AddMemberForm(request.POST, request.FILES)
        if form.is_valid():
            temp = form.save(commit=False)
            temp.first_name = request.POST.get('first_name').capitalize()
            temp.last_name = request.POST.get('last_name').capitalize()
            temp.registration_upto = parser.parse(
                request.POST.get('registration_date')) + delta.relativedelta(
                    months=int(request.POST.get('subscription_period')))
            print('amount remaining', temp.remaining_amount)
            if request.POST.get('fee_status') == 'pending':
                temp.notification = 1

            model_save(temp)
            success = 'Successfully Added Member'

            # Add payments if payment is 'paid'
            if temp.fee_status == 'paid':
                payments = Payments(user=temp,
                                    payment_date=temp.registration_date,
                                    payment_period=temp.subscription_period,
                                    payment_amount=temp.paid_amount)
                payments.save()

            form = AddMemberForm()
            member = Member.objects.last()

        context = {
            'add_success': success,
            'form': form,
            'member': member,
            'subs_end_today_count': get_notification_count(),
        }
        return render(request, 'add_member.html', context)
    else:
        form = AddMemberForm()
        context = {
            'form': form,
            'subs_end_today_count': get_notification_count(),
        }
    return render(request, 'add_member.html', context)
Example #7
0
def homepage_after_login(request):
    # run_notifier()
    if not Wallpaper.objects.filter()[:1].exists():
        return render(request, 'homepage_after_login.html')
    else:
        wallpaper = Wallpaper.objects.filter()[:1].get()
        return render(
            request, 'homepage_after_login.html', {
                'wallpaper': wallpaper,
                'subs_end_today_count': get_notification_count()
            })
Example #8
0
def reports(request):
    if request.method == 'POST':
        form = GenerateReportForm(request.POST)
        if form.is_valid():
            if request.POST.get('month') and request.POST.get(
                    'year') and request.POST.get('batch'):
                query = Q(registration_date__month=request.POST.get('month'),
                          registration_date__year=request.POST.get('year'),
                          batch=request.POST.get('batch'))
            elif request.POST.get('month') and request.POST.get('year'):
                query = Q(registration_date__month=request.POST.get('month'),
                          registration_date__year=request.POST.get('year'))
            elif request.POST.get('month') and request.POST.get('batch'):
                query = Q(registration_date__month=request.POST.get('month'),
                          batch=request.POST.get('batch'))
            elif request.POST.get('year') and request.POST.get('batch'):
                query = Q(registration_date__year=request.POST.get('year'),
                          batch=request.POST.get('batch'))
            else:
                query = Q(registration_date__year=request.POST.get('year'), )
            users = Member.objects.filter(query)
            # aggregate_amount = 0
            # for member in users:
            #     aggregate_amount += member.amount
            if 'export' in request.POST:
                return export_all(users)
            context = {
                'users': users,
                'form': form,
                # 'aggregate_amount': aggregate_amount,
                # 'students_registered': len(reg_users),
                'subs_end_today_count': get_notification_count(),
            }
            return render(request, 'reports.html', context)
    else:
        form = GenerateReportForm()
    return render(request, 'reports.html', {
        'form': form,
        'subs_end_today_count': get_notification_count(),
    })
Example #9
0
def change_password(request):
    if request.method == 'POST':
        form = PasswordChangeForm(request.user, request.POST)
        if form.is_valid():
            user = form.save()
            update_session_auth_hash(request, user)  # Important!
            messages.success(request,
                             'Your password was successfully updated!')
            return redirect('change_password')
        else:
            messages.error(request, 'Please correct the errors below.')
    else:
        form = PasswordChangeForm(request.user)
    return render(request, 'change_password.html', {
        'form': form,
        'subs_end_today_count': get_notification_count()
    })
Example #10
0
def update_member(request, id):
    if request.method == 'POST' and request.POST.get('export'):
        return export_all(Member.objects.filter(pk=id))
    if request.method == 'POST' and request.POST.get('no'):
        return redirect('/')
    if request.method == 'POST' and request.POST.get('gym_membership'):
        gym_form = UpdateMemberGymForm(request.POST)
        if gym_form.is_valid():
            object = Member.objects.get(pk=id)
            amount = request.POST.get('amount')
            day = (
                parser.parse(request.POST.get('registration_upto')) -
                delta.relativedelta(
                    months=int(request.POST.get('subscription_period')))).day
            last_day = parser.parse(str(object.registration_upto)).day

            month = parser.parse(request.POST.get('registration_upto')).month
            last_month = parser.parse(str(object.registration_upto)).month
            # if status is stopped then do not update anything
            if object.stop == 1 and not request.POST.get(
                    'stop') == '0' and request.POST.get('gym_membership'):
                messages.error(
                    request,
                    'Please start the status of user to update the record')
                return redirect('update_member', id=object.pk)
            # to change only the batch
            elif (object.batch != request.POST.get('batch')):
                object.batch = request.POST.get('batch')
                object = check_status(request, object)
                model_save(object)
            # check if user has modified only the date
            elif (datetime.datetime.strptime(str(object.registration_date),
                                             "%Y-%m-%d") !=
                  datetime.datetime.strptime(
                      request.POST.get('registration_date'), "%Y-%m-%d")):
                object.registration_date = parser.parse(
                    request.POST.get('registration_date'))
                object.registration_upto = parser.parse(
                    request.POST.get('registration_date')
                ) + delta.relativedelta(
                    months=int(request.POST.get('subscription_period')))
                object.fee_status = request.POST.get('fee_status')
                object = check_status(request, object)
                model_save(object)
            # if amount and period are changed
            elif (object.amount !=
                  amount) and (object.subscription_period !=
                               request.POST.get('subscription_period')):
                object.subscription_type = request.POST.get(
                    'subscription_type')
                object.subscription_period = request.POST.get(
                    'subscription_period')
                object.registration_date = parser.parse(
                    request.POST.get('registration_upto'))
                object.registration_upto = parser.parse(
                    request.POST.get('registration_upto')
                ) + delta.relativedelta(
                    months=int(request.POST.get('subscription_period')))
                object.fee_status = request.POST.get('fee_status')
                object.amount = request.POST.get('amount')
                object = check_status(request, object)
                model_save(object)
            # if only subscription_period is Changed
            elif (object.subscription_period !=
                  request.POST.get('subscription_period')):
                object.subscription_period = request.POST.get(
                    'subscription_period')
                object = check_status(request, object)
                model_save(object)
            # if amount and type are changed
            elif (object.amount !=
                  amount) and (object.subscription_type !=
                               request.POST.get('subscription_type')):
                object.subscription_type = request.POST.get(
                    'subscription_type')
                object.subscription_period = request.POST.get(
                    'subscription_period')
                object.registration_date = parser.parse(
                    request.POST.get('registration_upto'))
                object.registration_upto = parser.parse(
                    request.POST.get('registration_upto')
                ) + delta.relativedelta(
                    months=int(request.POST.get('subscription_period')))
                object.fee_status = request.POST.get('fee_status')
                object.amount = request.POST.get('amount')
                object = check_status(request, object)
                model_save(object)
            # if amount ad fee status are changed
            elif (object.amount != amount) and (
                (request.POST.get('fee_status') == 'paid') or
                (request.POST.get('fee_status') == 'pending')):
                object.amount = amount
                object.fee_status = request.POST.get('fee_status')
                object = check_status(request, object)
                model_save(object)
            # if only amount is channged
            elif (object.amount != amount):
                object.registration_date = parser.parse(
                    request.POST.get('registration_upto'))
                object.registration_upto = parser.parse(
                    request.POST.get('registration_upto')
                ) + delta.relativedelta(
                    months=int(request.POST.get('subscription_period')))
                object.fee_status = request.POST.get('fee_status')
                object.amount = request.POST.get('amount')
                if request.POST.get('fee_status') == 'pending':
                    object.notification = 1
                elif request.POST.get('fee_status') == 'paid':
                    object.notification = 2
                object = check_status(request, object)
                model_save(object)
            # nothing is changed
            else:
                if not request.POST.get('stop') == '1':
                    object.registration_date = parser.parse(
                        request.POST.get('registration_upto'))
                    object.registration_upto = parser.parse(
                        request.POST.get('registration_upto')
                    ) + delta.relativedelta(
                        months=int(request.POST.get('subscription_period')))
                    object.amount = request.POST.get('amount')
                    if request.POST.get('fee_status') == 'pending':
                        object.notification = 1
                    elif request.POST.get('fee_status') == 'paid':
                        object.notification = 2
                object.fee_status = request.POST.get('fee_status')
                object = check_status(request, object)
                model_save(object)

            # Add payments if payment is 'paid'
            if object.fee_status == 'paid':
                check = Payments.objects.filter(
                    payment_date=object.registration_date,
                    user__pk=object.pk).count()
                if check == 0:
                    payments = Payments(
                        user=object,
                        payment_date=object.registration_date,
                        payment_period=object.subscription_period,
                        payment_amount=object.amount)
                    payments.save()
            user = Member.objects.get(pk=id)
            gym_form = UpdateMemberGymForm(
                initial={
                    'registration_date': user.registration_date,
                    'registration_upto': user.registration_upto,
                    'subscription_type': user.subscription_type,
                    'subscription_period': user.subscription_period,
                    'amount': user.amount,
                    'fee_status': user.fee_status,
                    'batch': user.batch,
                    'stop': user.stop,
                })

            info_form = UpdateMemberInfoForm(
                initial={
                    'first_name': user.first_name,
                    'last_name': user.last_name,
                    'dob': user.dob,
                })

            try:
                payments = Payments.objects.filter(user=user)
            except Payments.DoesNotExist:
                payments = 'No Records'
            messages.success(request, 'Record updated successfully!')
            return redirect('update_member', id=user.pk)
        else:
            user = Member.objects.get(pk=id)
            info_form = UpdateMemberInfoForm(
                initial={
                    'first_name': user.first_name,
                    'last_name': user.last_name,
                    'dob': user.dob,
                })

            try:
                payments = Payments.objects.filter(user=user)
            except Payments.DoesNotExist:
                payments = 'No Records'
            return render(
                request, 'update.html', {
                    'payments': payments,
                    'gym_form': gym_form,
                    'info_form': info_form,
                    'user': user,
                    'subs_end_today_count': get_notification_count(),
                })
    elif request.method == 'POST' and request.POST.get('info'):
        object = Member.objects.get(pk=id)
        object.first_name = request.POST.get('first_name')
        object.last_name = request.POST.get('last_name')
        object.dob = request.POST.get('dob')

        # for updating photo
        if 'photo' in request.FILES:
            myfile = request.FILES['photo']
            fs = FileSystemStorage(base_url="")
            photo = fs.save(myfile.name, myfile)
            object.photo = fs.url(photo)
        model_save(object)

        user = Member.objects.get(pk=id)
        gym_form = UpdateMemberGymForm(
            initial={
                'registration_date': user.registration_date,
                'registration_upto': user.registration_upto,
                'subscription_type': user.subscription_type,
                'subscription_period': user.subscription_period,
                'amount': user.amount,
                'fee_status': user.fee_status,
                'batch': user.batch,
                'stop': user.stop,
            })

        info_form = UpdateMemberInfoForm(
            initial={
                'first_name': user.first_name,
                'last_name': user.last_name,
                'dob': user.dob,
            })

        try:
            payments = Payments.objects.filter(user=user)
        except Payments.DoesNotExist:
            payments = 'No Records'

        return render(
            request, 'update.html', {
                'payments': payments,
                'gym_form': gym_form,
                'info_form': info_form,
                'user': user,
                'updated': 'Record Updated Successfully',
                'subs_end_today_count': get_notification_count(),
            })
    else:
        user = Member.objects.get(pk=id)

        if len(Payments.objects.filter(user=user)) > 0:
            payments = Payments.objects.filter(user=user)
        else:
            payments = 'No Records'
        gym_form = UpdateMemberGymForm(
            initial={
                'registration_date': user.registration_date,
                'registration_upto': user.registration_upto,
                'subscription_type': user.subscription_type,
                'subscription_period': user.subscription_period,
                'amount': user.amount,
                'fee_status': user.fee_status,
                'batch': user.batch,
                'stop': user.stop,
            })

        info_form = UpdateMemberInfoForm(
            initial={
                'first_name': user.first_name,
                'last_name': user.last_name,
                'dob': user.dob,
            })
        return render(
            request, 'update.html', {
                'payments': payments,
                'gym_form': gym_form,
                'info_form': info_form,
                'user': user,
                'subs_end_today_count': get_notification_count(),
            })
Example #11
0
def update_trainer(request, id):
    if request.method == 'POST' and request.POST.get('export'):
        return export_all(Trainer.objects.filter(pk=id))
    if request.method == 'POST' and request.POST.get('no'):
        return redirect('/')
    if request.method == 'POST' and request.POST.get('gym_trainer'):
        print("hi")
    elif request.method == 'POST' and request.POST.get('info'):
        object = Trainer.objects.get(pk=id)
        object.first_name = request.POST.get('first_name')
        object.last_name = request.POST.get('last_name')
        object.dob = request.POST.get('dob')

        # for updating photo
        if 'photo' in request.FILES:
            myfile = request.FILES['photo']
            fs = FileSystemStorage(base_url="")
            photo = fs.save(myfile.name, myfile)
            object.photo = fs.url(photo)
        model_save(object)

        trainer = Trainer.objects.get(pk=id)
        print(trainer)
        gym_trainer_form = UpdateTrainerGymForm(
            initial={
                'mobile_number': trainer.mobile_number,
                'email': trainer.email,
                'address': trainer.address,
                'batch': trainer.batch,
                'stop': trainer.stop,
            })

        trainer_info_form = UpdateTrainerInfoForm(
            initial={
                'first_name': trainer.first_name,
                'last_name': trainer.last_name,
                'dob': trainer.dob,
            })
        context = {
            'gym_form': gym_trainer_form,
            'info_form': trainer_info_form,
            'user': trainer,
            'subs_end_today_count': get_notification_count(),
        }
        return render(request, 'trainer_update.html', context)

    else:
        trainer = Trainer.objects.get(pk=id)
        print(trainer)
        gym_trainer_form = UpdateTrainerGymForm(
            initial={
                'mobile_number': trainer.mobile_number,
                'email': trainer.email,
                'address': trainer.address,
                'batch': trainer.batch,
                'stop': trainer.stop,
            })

        trainer_info_form = UpdateTrainerInfoForm(
            initial={
                'first_name': trainer.first_name,
                'last_name': trainer.last_name,
                'dob': trainer.dob,
            })
        context = {
            'gym_form': gym_trainer_form,
            'info_form': trainer_info_form,
            'user': trainer,
            'subs_end_today_count': get_notification_count(),
        }
        return render(request, 'trainer_update.html', context)