Example #1
0
def UnSign(request):
    if request.is_ajax():
        if request.user.is_authenticated():
            if request.method == "POST":
                try:
                    Enrollments.objects.filter(participant=request.user.id).filter(
                        course_details=parse_income_body(request.body)).delete()
                    course = Courses.objects.get(pk=parse_income_body(request.body))
                    course.participants_number = (F('participants_number') - 1)
                    course.save()
                    return JsonResponse({'status': 'user_unsigned'}, safe=False)
                except:
                    traceback.print_exc(file=sys.stdout)
    return render(request, "ajax/terminy_zapisow.html", {})
Example #2
0
def DoSignUp(request):
    if request.is_ajax():
        if request.user.is_authenticated():
            if request.method == "POST":
                # Pobieramy dane od klienta, PK wybranego kursu
                parsed_income = parse_income_body(request.body)
                try:
                    if Enrollments.objects.filter(participant=request.user.id).filter(
                            course_details=parsed_income).exists():
                        return JsonResponse({'status': 'already_signed'}, safe=False)
                    elif Enrollments.objects.filter(course_details=parsed_income).exists():
                        job = Enrollments.objects.filter(course_details=parsed_income).get()
                        job.participant.add(User.objects.filter(pk=request.user.id).get())
                    else:
                        category = Courses.objects.get(pk=parsed_income)
                        job = Enrollments(course_details=category)
                        job.save()
                        job.participant.add(User.objects.filter(pk=request.user.id).get())
                        # Inkrementacja liczby zapisanych
                    course = Courses.objects.get(pk=parsed_income)
                    course.participants_number = (F('participants_number') + 1)
                    course.save()
                    subject = "OSK, Zapis na kurs"
                    message = "Zapisałeś/aś się na spotkanie organizacyjne kursu z kategorii {0} , które odbędzie się {1} pod adresem {2}.".format(
                        course.category, course.course_date, course.address)
                    from_email = "*****@*****.**"
                    send_mail(subject, message, from_email, [request.user.email])
                    return JsonResponse({'status': 'user_signed'}, safe=False)
                except:
                    traceback.print_exc(file=sys.stdout)
    return render(request, "ajax/terminy_zapisow.html", {})
Example #3
0
def Instructors(request):
    if request.is_ajax():
        if request.method == "POST":
            if request.user.is_authenticated():
                parsed_income = parse_income_body(request.body)
                try:
                    work_plan = WorkPlan.objects.filter(instructor=parsed_income).order_by("slot_type").values(
                        "status", "slot_type")
                    work_plan = ValuesQuerySetToDict(work_plan)
                    return JsonResponse(work_plan, safe=False)
                except:
                    traceback.print_exc(file=sys.stdout)
    instructors = ValuesQuerySetToDict(
        User.objects.filter(Q(myuser__userType="Instruktor") | Q(myuser__userType="Prezes")).all())
    return render(request, "ajax/instructors.html", {"instructors": instructors})
Example #4
0
def SignUpTerminy(request):
    if request.is_ajax():
        if request.user.is_authenticated():
            if request.method == "POST":
                parsed_income = parse_income_body(request.body)
                if (len(parsed_income) > 2):
                    parsed_income = parsed_income.replace("%2B", "+")
                try:
                    available_courses = Courses.objects.filter(category__category_type=parsed_income).values(
                        "pk", "category__category_type", "course_date", "participants_number", "address__city",
                        "address__street",
                        "address__place")
                    available_courses = ValuesQuerySetToDict(available_courses)
                    return JsonResponse(available_courses, safe=False)
                except:
                    traceback.print_exc(file=sys.stdout)
    courses = ValuesQuerySetToDict(Category.objects.all())
    return render(request, "ajax/terminy_zapisow.html", {"courses": courses})
Example #5
0
def ManPlaceCheck(request):
    if request.is_ajax():
        if request.user.is_authenticated():
            if request.user.myuser.is_instructor() or request.user.myuser.is_boss():
                if request.method == "POST":
                    parsed_income = parse_income_body(request.body)
                    if Maneuvre_ground.is_place_free(Maneuvre_ground.objects.get(pk=parsed_income)):
                        status = "Zajęty"
                        Maneuvre_ground.objects.filter(pk=parsed_income).update(
                            taken_by=request.user.first_name + " " + request.user.last_name)
                        Maneuvre_ground.objects.filter(pk=parsed_income).update(
                            state_changed=datetime.now().strftime("%H:%M %Y-%m-%d"))
                    else:
                        who = Maneuvre_ground.objects.filter(pk=parsed_income).values("taken_by")
                        who = ValuesQuerySetToDict(who)
                        combined_cred = request.user.first_name + " " + request.user.last_name
                        if who[0]["taken_by"] == combined_cred:
                            status = "Wolny"
                            Maneuvre_ground.objects.filter(pk=parsed_income).update(state_changed="", taken_by="")
                        else:
                            return JsonResponse({"status": "NotYou"}, safe=False)
                    Maneuvre_ground.objects.filter(pk=parsed_income).update(is_free=status)
                    data = Maneuvre_ground.objects.order_by('pk').values('pk', "category__category_type", "is_free",
                                                                         "state_changed",
                                                                         "taken_by", "address__city", "address__street",
                                                                         "address__place")
                    data_dict = ValuesQuerySetToDict(data)
                    return JsonResponse(data_dict, safe=False)
                elif request.method == "GET":
                    try:
                        data = Maneuvre_ground.objects.order_by('pk').values('pk', "category__category_type", "is_free",
                                                                             "state_changed",
                                                                             "taken_by", "address__city",
                                                                             "address__street",
                                                                             "address__place")
                        data_dict = ValuesQuerySetToDict(data)

                    except Exception:
                        traceback.print_exc(file=sys.stdout)
                    return JsonResponse(data_dict, safe=False)
    return render(request, "ajax/maneuvering_place.html")
Example #6
0
def statistics(request):
    if request.user.is_authenticated():
        if request.user.myuser.is_boss():
            if request.is_ajax():
                if request.method == "POST":
                    parsed_income = parse_income_body(request.body)
                    try:
                        selected_instructor = User.objects.filter(pk=parsed_income).values(
                            'pk', "first_name", 'workplan__status').annotate(
                            work_hours=Count('workplan__status')).order_by('work_hours')
                        selected_instructor = ValuesQuerySetToDict(selected_instructor)
                        return JsonResponse(selected_instructor, safe=False)
                    except:
                        traceback.print_exc(file=sys.stdout)
            instructors = User.objects.filter(Q(myuser__userType="Instruktor") | Q(myuser__userType="Prezes")).all()
            instructors = ValuesQuerySetToDict(instructors)

            coursants = len(User.objects.filter(myuser__userType="Kursant").all())
            coursants_categories = ValuesQuerySetToDict(
                Category.objects.filter(myuser__userType="Kursant").values("category_type").annotate(
                    category_stats=Count('category_type')))

            male = len(User.objects.filter(myuser__userType="Kursant", myuser__sex="M").all())
            male_data = ValuesQuerySetToDict(
                Category.objects.filter(myuser__userType="Kursant", myuser__sex="M").values("category_type").annotate(
                    category_stats=Count('category_type')))
            female = len(User.objects.filter(myuser__userType="Kursant", myuser__sex="F").all())
            female_data = ValuesQuerySetToDict(
                Category.objects.filter(myuser__userType="Kursant", myuser__sex="F").values("category_type").annotate(
                    category_stats=Count('category_type')))

            return render(request, "statistics/statistics.html",
                          {"instructors": instructors, "coursant": coursants,
                           "coursants_categories": coursants_categories,
                           "male": male,
                           "male_data": male_data,
                           "female": female,
                           "female_data": female_data})