Exemple #1
0
def camper_detail(request, id_camp, id_camper):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    context['id_camper'] = id_camper
    context['name'] = getPersonal(request)['name']
    context['campers'] = Camper.objects.filter(id=id_camper)
    context['observe'] = Observe.objects.filter(camper_id=id_camper)
    # use to link to personal
    link = Camper.objects.values('personal_id')

    # get object with personal_id = link
    for camper_object in link:
        camper_id = camper_object['personal_id']

    # get date from camper_id = personal_id
    get_date = Personal.objects.filter(id=camper_id).values('birthday')
    for date_object in get_date:
        # return as time.delta then convert them
        time_count_year = datetime.now().date() - date_object['birthday']

    # send year that already count as context
    context['birthday'] = time_count_year.days // 365
    if id_camp:
        context['active_camp'] = True
    return render(request, 'camper_detail.html', context)
Exemple #2
0
def edit_camper(request, id_camp, id_camper):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    context['id_camper'] = id_camper
    context['campers'] = Camper.objects.filter(pk=id_camper)
    camper = Camper.objects.get(pk=id_camper)
    print(camper.personal_id)
    if id_camp:
        context['active_camp'] = True
    if request.method == 'POST':
        post = request.POST
        personal_id = camper.personal_id
        print(personal_id)
        personal = updatePersonal(post, personal_id)
        school = post.get('school')
        parent_phone = post.get('parent_phone')
        parent_name = post.get('parent_name')
        group = post.get('group')

        camper.school = school
        camper.parent_phone = parent_phone
        camper.parent_name = parent_name
        camper.group = group

        camper.save()

        messages.success(request, 'อัพเดตโปรไฟล์เสร็จสมบูรณ์')
        return HttpResponseRedirect('../../../../%d/campers/' % id_camp)
    else:
        form = CamperForm()
        context['form'] = form
    return render(request, 'edit_camper.html', context)
Exemple #3
0
def create_camper(request, id_camp):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    # camper_detail = Camper.objects.all()
    if id_camp:
        context['active_camp'] = True

    if request.method == 'POST':
        post = request.POST

        camp = Camp.objects.get(pk=id_camp)

        personal = savePersonal(request)

        school = post.get('school')
        parent_phone = post.get('parent_phone')
        parent_name = post.get('parent_name')
        group = post.get('group')
        camper = Camper(
            camp=camp,
            personal=personal,
            school=school,
            parent_phone=parent_phone,
            parent_name=parent_name,
            group=group,
        )
        camper.save()
        messages.success(request, 'เพิ่ม Camper เรียบร้อยแล้ว')
        print('successfully add to database')
        return HttpResponseRedirect('../../../../camp/%d/campers/' % id_camp)
    else:
        form = CamperForm()
        context['form'] = form

    return render(request, 'create_camper.html', context)
Exemple #4
0
def create_department_mc(request, id_camp):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    if id_camp:
        context['active_camp'] = True

    if request.method == 'POST':
        camp = Camp.objects.get(pk=id_camp)
        choose = request.POST.get('choose')

        if choose == 'department':
            name = request.POST.get('name_department')
            typeOfDepartment = request.POST.get('typeOfDepartment')
            desc = request.POST.get('desc_department')

            department = Department(camp=camp,
                                    name=name,
                                    typeOfDepartment=typeOfDepartment,
                                    desc=desc)
            department.save()
            messages.success(request, 'ดำเนินการสร้างฝ่าย ' + name + ' แล้ว')

        elif choose == 'MC':
            name = request.POST.get('name_MC')
            typeOfMC = request.POST.get('typeOfMC')
            desc = request.POST.get('desc_MC')

            mc = MC(camp=camp, name=name, typeOfMC=typeOfMC, desc=desc)
            mc.save()
            messages.success(request, 'ดำเนินการสร้าง MC ' + name + ' แล้ว')

        return HttpResponseRedirect('../../../camp/%d/' % id_camp)
    return render(request, 'camp.html', context)
Exemple #5
0
def create_staff(request, id_camp):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    if id_camp:
        context['active_camp'] = True

    if request.method == 'POST':
        post = request.POST

        camp = Camp.objects.get(pk=id_camp)

        personal = savePersonal(request)

        position = post.get('position')
        group = post.get('group')

        staff = Staff(
            camp=camp,
            personal=personal,
            position=position,
            group=group,
        )

        if post.get('department') != '0':
            department = Department.objects.get(pk=post.get('department'))
            staff.department = department

        staff.save()
        messages.success(request, 'เพิ่ม Staff '+personal.first_name+' แล้ว')
        return HttpResponseRedirect('../../../../camp/%d/staffs/' % id_camp)
    else:
        form = StaffForm()
        context['form'] = form
        context['departments'] = Department.objects.filter(camp_id=id_camp)
    return render(request, 'create_staff.html', context)
Exemple #6
0
def camp(request, id_camp=""):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    sex = {'M': 'Mr.', 'F': 'Miss.'}
    if id_camp:
        camp = Camp.objects.get(pk=id_camp)
        departments = reversed(Department.objects.filter(camp_id=id_camp))
        MCs = reversed(MC.objects.filter(camp_id=id_camp))
        count_total_staff = Staff.objects.select_related('camp').filter(
            camp_id=id_camp).count
        count_total_camper = Camper.objects.select_related('camp').filter(
            camp_id=id_camp).count

        camp.head.sex = sex[camp.head.personal.sex]
        context['active_camp'] = True
        context['camp'] = camp
        context['departments'] = departments
        context['MCs'] = MCs
        context['count_total_staff'] = count_total_staff
        context['count_total_camper'] = count_total_camper
        context['amount'] = camp.amount
        messages.info(request, 'ยินดีตอนรับสู่ค่าย ' + camp.name)
    else:
        user = request.user
        staff = Staff.objects.filter(personal=user.personal)
        if staff:
            staff = staff[0]
            camp = Camp.objects.filter(pk=staff.camp.id)
        else:
            camp = Camp.objects.filter(head=user)
        context['camps'] = camp
        context['active_camp'] = False

    return render(request, 'camp.html', context)
Exemple #7
0
def campers(request, id_camp):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    context['campers'] = reversed(
        Camper.objects.select_related('personal').filter(camp_id=id_camp))
    if id_camp:
        context['active_camp'] = True
    return render(request, 'campers.html', context)
Exemple #8
0
def delete_camper(request, id_camp, id_camper=""):
    context = getPersonal(request)
    context['id_camp'] = id_camp

    camper = Camper.objects.get(pk=id_camper)
    camper.delete()
    messages.warning(
        request, 'ลบ ' + camper.personal.first_name + ' ' +
        camper.personal.last_name + ' เรียบร้อย')
    return HttpResponseRedirect('../../../../%d/campers' % id_camp)
Exemple #9
0
def flow(request, id_camp):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    if id_camp:
        context['active_camp'] = True
    context['locations'] = Location.objects.all()
    context['departments'] = Department.objects.filter(camp_id=id_camp)
    context['mc'] = MC.objects.filter(camp_id=id_camp)

    return render(request, 'flow.html', context)
Exemple #10
0
def delete_staff(request, id_camp, id_staff=""):
    context = getPersonal(request)
    context['id_camp'] = id_camp

    staff = Staff.objects.get(pk=id_staff)
    personal = Personal.objects.get(pk=staff.personal.id)
    personal.delete()
    staff.delete()
    messages.warning(request, 'ลบ '+staff.personal.first_name +
                     ' '+staff.personal.last_name+' เรียบร้อย')
    return HttpResponseRedirect('../../../../%d/staffs' % id_camp)
Exemple #11
0
def add_observe(request, id_camp, id_camper):
    context = {}
    context['id_camp'] = id_camp
    context['id_camper'] = id_camper
    context['name'] = getPersonal(request)['name']
    context['observes'] = Observe.objects.filter(camper_id=id_camper)

    if request.method == 'POST':
        split_second = str(datetime.now().time()).split('.')[0]
        time = str(datetime.now().date()) + ' ' + split_second
        observe = request.POST.get('observe')
        observe_object = Observe(text=observe, time=time, camper_id=id_camper)
        observe_object.save()

    return render(request, 'camper_detail.html', context)
Exemple #12
0
def add_staff(request, id_camp):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    if id_camp:
        context['active_camp'] = True

    if request.method == 'POST':
        post = request.POST

        camp = Camp.objects.get(pk=id_camp)

        username = post.get('username')
        data_user = user.objects.get(username=username)
        personal = Personal.objects.get(pk=data_user.personal_id)

        position = post.get('position')
        group = post.get('group')

        staff = Staff(
            camp=camp,
            personal=personal,
            position=position,
            group=group,
        )

        if post.get('department') != '0':
            department = Department.objects.get(name=post.get('department'))
            staff.department = department

        if post.get('mc') != '0':
            mc = MC.objects.get(name=post.get('mc'))
            staff.mc = mc

        my_group = Group.objects.get(name='staff') 
        my_group.user_set.add(data_user)

        staff.save()
        messages.success(request, 'เพิ่ม Staff '+personal.first_name+' แล้ว')
        return HttpResponseRedirect('../../../../camp/%d/staffs/' % id_camp)

    else:
        form = StaffForm()
        context['camp'] = Camp.objects.get(pk=id_camp)
        context['userAll'] = user.objects.all()
        context['form'] = form
        context['MCs'] = MC.objects.filter(camp_id=id_camp)
        context['departments'] = Department.objects.filter(camp_id=id_camp)
    return render(request, 'add_staff.html', context)
Exemple #13
0
def create_camp(request):
    context = getPersonal(request)
    if request.method == 'POST':
        user = request.user
        name = request.POST.get('name')
        desc = request.POST.get('desc')
        amount = request.POST.get('amount')
        start_date = request.POST.get('start_date')
        end_date = request.POST.get('end_date')
        logo = request.FILES.get('logo_pic')
        camp = Camp(head=user,
                    name=name,
                    desc=desc,
                    amount=amount,
                    start_date=start_date,
                    end_date=end_date,
                    logo=logo)
        camp.save()
        messages.success(
            request, 'ดำเนินการสร้าง ' + name + ' แล้ว ขอให้สนุกกับการจัดค่าย')
        return redirect('camp')
    return render(request, 'create_camp.html', context)
Exemple #14
0
def profile(request):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    if id_camp:
        context['active_camp'] = True
    return render(request, 'profile.html', context)
Exemple #15
0
def import_camper(request, id_camp):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    if id_camp:
        context['active_camp'] = True
    template = "import_camper.html"

    camp = Camp.objects.get(pk=id_camp)
    data = Camper.objects.all()
    # GET request returns the value of the data with the specified key.
    if request.method == "GET":
        count = 0
        # for _ in range(200):
        #     personal = savePersonal(randomPersonal())
        #     rand = randomCamper()
        #     camper = Camper(
        #         camp = camp,
        #         personal = personal,
        #         school = rand['school'],
        #         parent_phone = rand['parent_phone'],
        #         parent_name = rand['parent_name'],
        #         group = rand['group']
        #     )
        #     camper.save()
        #     count += 1
        #     print('save camper', count)
        # messages.warning(request, 'ทำการ import camper จำนวน '+str(count)+' คน หากผิดพลาดโปรดติดต่อผู้ดูแล')
        return render(request, template, context)

    csv_file = request.FILES['file']

    if not csv_file.name.endswith('.csv'):
        messages.error(request, 'THIS IS NOT A CSV FILE')

    data_set = csv_file.read().decode('utf-8-sig')
    dic = csv.DictReader(io.StringIO(data_set), delimiter=",")

    # นับจำนวน camper ทั้งหมด
    count = 0
    for i in dic:
        # i.update((k, [v]) for k, v in i.items())

        personal = savePersonal(i)
        school = i['school']
        parent_phone = i['parent_phone']
        parent_name = '-'
        group = i['group']

        camper = Camper(camp=camp,
                        personal=personal,
                        school=school,
                        parent_phone=parent_phone,
                        parent_name=parent_name,
                        group=group)

        camper.save()
        count += 1
    messages.warning(
        request, 'ทำการ import camper จำนวน ' + str(count) +
        ' คน หากผิดพลาดโปรดติดต่อผู้ดูแล')
    return HttpResponseRedirect('../../../../camp/%d/campers/' % id_camp)
Exemple #16
0
def import_staff(request, id_camp):
    context = getPersonal(request)
    context['id_camp'] = id_camp
    if id_camp:
        context['active_camp'] = True
    template = "import_staff.html"

    data = Staff.objects.all()
    # GET request returns the value of the data with the specified key.
    if request.method == "GET":
        count = 0
        camp = Camp.objects.get(pk=id_camp)
        # for _ in range(200):
        #     per = randomPersonal()
        #     per['sid'] = '61070'+('%03d'%random.randrange(1, 500))
        #     personal = savePersonal(per)
        #     rand = randomStaff()

        #     department = Department.objects.filter(name=rand['department'], camp_id=id_camp)
        #     mc = MC.objects.filter(name=rand['mc'], camp_id=id_camp)

        #     group = '-'
        #     staff = Staff(
        #         camp = camp,
        #         personal = personal,
        #         position = rand['position'],
        #     )
        #     check = 0

        #     if department:
        #         staff.department = department[0]
        #     else:
        #         name = rand['department']
        #         typeOfDepartment = '-'
        #         desc = '-'

        #         if name in ['ค่าย IOT', 'ค่าย Network','ค่าย App',' ค่าย Data','ค่าย Game']:
        #             depart = Department.objects.filter(typeOfDepartment=name, camp_id=id_camp)

        #             if not depart:
        #                 typeOfDepartment = 'วิชาการ'
        #                 group = 'วิชาการ'
        #             else:
        #                 check = 1

        #         if name == 'พี่บ้าน':
        #             depart = Department.objects.filter(typeOfDepartment=name, camp_id=id_camp)

        #             if not depart:
        #                 typeOfDepartment = 'ส้นทนาการ'
        #                 group = 'ส้นทนาการ'
        #             else:
        #                 check = 1

        #         if check == 0:
        #             department = Department(
        #                 camp = camp,
        #                 name = name,
        #                 typeOfDepartment = typeOfDepartment,
        #                 desc = desc
        #             )

        #             department.save()
        #             staff.department = department

        #     if mc:
        #         staff.mc = mc[0]
        #     else:
        #         name = rand['mc']
        #         if rand['mc'] != '-' and check == 0:
        #             typeOfMC = '-'
        #             desc = '-'

        #             mc = MC(
        #                 camp = camp,
        #                 name = name,
        #                 typeOfMC = typeOfMC,
        #                 desc = desc
        #             )

        #             mc.save()
        #             staff.mc = mc

        #     staff.group = group

        #     staff.save()

        #     count += 1
        #     print('save staff', count)
        return render(request, template, context)

    csv_file = request.FILES['file']

    if not csv_file.name.endswith('.csv'):
        messages.error(request, 'THIS IS NOT A CSV FILE')

    data_set = csv_file.read().decode('utf-8-sig')
    dic = csv.DictReader(io.StringIO(data_set), delimiter=",")

    camp = Camp.objects.get(pk=id_camp)
    # นับจำนวน staff ทั้งหมด
    count = 0
    for i in dic:
        # i.update((k, [v]) for k, v in i.items())

        personal = savePersonal(i)

        department = Department.objects.filter(
            name=i['department'], camp_id=id_camp)

        position = 'staff'
        group = '-'

        staff = Staff(
            camp=camp,
            personal=personal,
            position=position,
            group=group,
        )

        if department:
            staff.department = department[0]

        staff.save()
        count += 1
    messages.warning(request, 'ทำการ import staff จำนวน ' +
                     str(count)+' คน หากผิดพลาดโปรดติดต่อผู้ดูแล')
    return HttpResponseRedirect('../../../../camp/%d/staffs/' % id_camp)