Esempio n. 1
0
def save_data_form_grid(request, pk_id, form, formset, formset_pilot):
    if pk_id:
        LogSection.objects.filter(log = pk_id).delete()
        log = Log.objects.get(pk=pk_id)
        if log:
            form = LogForm(request.POST, customer = request.POST.get('customer'), 
                            model = request.POST.get('model'), instance=log)
            
    form = form.save(commit = False)
    try:
        em = Employee.objects.filter(employee_number = request.session[constant.usernameParam])
        if em:
            form.pilot_employee_number = em[0] 
    except:
        print "get employee number"
        pass
    submit = None
    try:
        submit = request.POST.get("submit")
    except Exception as e:
        print 'Loi o kt submit'
        print e
    if submit:
        form.is_submited = True
        messages.success(request, 'Flight Log is submitted successfully.')
    else:
        messages.info(request, 'Flight Log is saved successfully.')
        
    form.save()
    
    log_ob = Log.objects.order_by('log_number').all()
    log_count = log_ob.count()

    formset = formset.save(commit=False)
    for f in formset:
        f.log_id = Log.objects.get(pk=pk_id) if pk_id else log_ob[log_count-1]
        f.save()
        
    formset_pilot = formset_pilot.save(commit=False)
    for f in formset_pilot:
        f.log = Log.objects.get(pk=pk_id) if pk_id else log_ob[log_count-1]
        f.save()
    # Flight Leg section (Pop up)
    try:
        list_flight_log = get_list_session_object(request, Log.objects.filter(id_log = pk_id)[0])
    except Exception as e:
        print 'save trong ham save 230'
        print e
        list_flight_log = get_list_session_object(request, log_ob[log_count-1])
        
    for flight_log in list_flight_log:
        flight_log.save()
Esempio n. 2
0
def log(request):
    if not is_login(request):
        return response_redirect_login(request)
    link_return = "/"
    """" Initial for flight log table and fuel table """

    flight_table = []
    log_emp_list = []
    log_loc_list = []
    log_model = None
    log = None
    max_pax = None
    locations = None
    payload_available = None
    alert = None
    log_id = None
    check = None
    is_sub = None
    log_ob = Log.objects.order_by("log_number").all()
    if log_ob:
        log_count = log_ob.count()
        log_n = log_ob[log_count - 1].log_number + 1
    else:
        log_n = 1
    list_emp = Employee.objects.all().order_by("first_name")
    extra_value = 1
    extra_value_pilot = 0
    if "log_id" in request.GET:
        id = request.GET["log_id"]
        a = Log_Location.objects.filter(log_id=id).count() if id else 0
        if a >= 1:
            extra_value = 0
        b = LogEmployee.objects.filter(log=id).count() if id else 0
        if b >= 1:
            extra_value_pilot = 0

    FuelFormSet = modelformset_factory(
        model=Log_Location, form=FuelForm, can_delete=True, max_num=10, extra=extra_value
    )

    PilotFormSet = formset_factory(form=PilotForm, max_num=10, extra=extra_value_pilot)

    if request.method == "POST":
        formset = FuelFormSet(request.POST, request.FILES)
        formset_pilot = PilotFormSet(request.POST, request.FILES, prefix="pilots")

        form = LogForm(request.POST, customer=request.POST.get("customer"), model=request.POST.get("model"))

        log_num = request.POST.get("log_number")

        if form.is_valid() and formset.is_valid() and formset_pilot.is_valid():
            pk_id = request.POST.get("id_log")
            alert = save_data_form_grid(request, pk_id, form, formset, formset_pilot, log_num)
            check = True
            delete_session(request)
            try:
                submit = request.POST[constant.submit]

                if submit:
                    is_sub = True
                    link_return = "/search/"
            except:
                pass
            if not alert:
                try:
                    param = request.get_full_path()
                    next = param[5:]
                    if next == "1":
                        link_return = "/search/"
                    if next == "2":
                        link_return = "/"
                    if next == "3":
                        link_return = "/log/"
                except:
                    pass
                return HttpResponseRedirect(link_return)

    #             return HttpResponseRedirect(link_return)

    else:  # Get data from DB and reload data into sessions
        delete_session(request)
        try:
            """ Initial data for session flight log  """
            log_id = request.GET["log_id"]

            formset = FuelFormSet(queryset=Log_Location.objects.filter(log_id=log_id))
            cur_login_user = LogEmployee.objects.filter(log=log_id).values()
            formset_pilot = PilotFormSet(initial=cur_login_user, prefix="pilots")

            log_emp_list = LogEmployee.objects.filter(log=log_id)
            log_loc_list = Log_Location.objects.filter(log_id=log_id)
            log_object = Log.objects.get(id_log=log_id)
            flight_table = LogSection.objects.filter(log=log_object)
            list_flight_log = []
            for flight_log in flight_table:
                list_flight_log.append(serializers.serialize("json", [flight_log]))
            request.session[constant.list_flight_log] = list_flight_log

            """ Reload data for LogForm Section and AirCraft """
            log_id = request.GET["log_id"]
            log = Log.objects.get(id_log=log_id)
            log_n = log.log_number
            mod = 0

            if log.a1c.id_a1c:
                ac = log.a1c.id_a1c
                if A1C.objects.get(id_a1c=ac):
                    log_model = A1C.objects.get(id_a1c=ac).model
                    mod = log_model.id_model
                    max_pax = log_model.max_passenger
                    payload_available = log_model.max_gross_weight - log.opterational_weight

            form = LogForm(
                reload=True,
                customer=log_object.customer,
                model=log_object.a1c.model,
                instance=log,
                initial={"model": mod},
            )

        except Exception as e:
            form = LogForm(
                customer=request.POST.get("customer"),
                model=request.POST.get("model"),
                initial={"log_number": log_n, "user_id": request.session[constant.usernameParam]},
            )
            formset = FuelFormSet(queryset=Log_Location.objects.none())
            list = []
            sic = pic = night = day = vfr = ifr = nvg = co_nvg = 0
            pilot = LogEmployee()
            pilot.sic = sic
            pilot.day = day
            pilot.night = night
            pilot.nvg = nvg
            pilot.vfr = vfr
            pilot.ifr = ifr
            pilot.employee = Employee.objects.get(employee_number=request.session[constant.usernameParam])
            list.append(todict(pilot))
            formset_pilot = PilotFormSet(initial=list, prefix="pilots")
            pass

        list_flight_log = get_list_session_object(request)
        locations = []
        for flight_log in list_flight_log:
            if flight_log.flight_data_fuel_station:
                location = Location.objects.get(id_location=flight_log.flight_data_fuel_station.id_location)
                if location:
                    if location not in locations:
                        locations.append(location)

        import operator

        locations.sort(key=operator.attrgetter("location_name"))

    c = {
        "flight_table": flight_table,
        "form": form,
        "formset": formset,
        "formset_pilot": formset_pilot,
        "id": log_n,
        "list_emp": list_emp,
        "locations": locations,
        constant.forms: flight_table,
        "log_emp_list": log_emp_list,
        "log_model": log_model,
        "max_pax": max_pax,
        "payload_available": payload_available,
        "emp_number": request.session[constant.usernameParam],
        "log_loc_list": log_loc_list,
        "alert": alert,
        "log_id": log_id,
        "check": check,
        "is_sub": is_sub,
    }
    c.update(csrf(request))

    return render(request, "flights/index.html", c)
Esempio n. 3
0
def save_data_form_grid(request, pk_id, form, formset, formset_pilot, log_number):
    alert = None
    if pk_id:
        LogSection.objects.filter(log=pk_id).delete()
        log = Log.objects.get(pk=pk_id)
        if log:
            form = LogForm(
                request.POST, customer=request.POST.get("customer"), model=request.POST.get("model"), instance=log
            )
            form = form.save(commit=False)
    else:
        form = form.save(commit=False)
        check_lognumber = Log.objects.filter(log_number=log_number)
        o = Log.objects.order_by("log_number").all()
        c = o.count()
        if check_lognumber:
            new_log_num = o[c - 1].log_number + 1
            form.log_number = new_log_num
            alert = "The log number has been used. Your log number changes to %06d" % new_log_num

    try:
        em = Employee.objects.filter(employee_number=request.session[constant.usernameParam])
        if em:
            form.pilot_employee_number = em[0]
    except:
        pass
    submit = None
    try:
        submit = request.POST.get("submit")
    except Exception as e:
        pass
    if submit:
        form.is_submited = True
        messages.success(request, "Flight Log is submitted successfully.")
    else:
        messages.info(request, "Flight Log is saved successfully.")

    form.save()

    log_ob = Log.objects.order_by("log_number").all()
    log_count = log_ob.count()

    formset = formset.save(commit=False)
    for f in formset:
        f.log_id = Log.objects.get(pk=pk_id) if pk_id else log_ob[log_count - 1]
        f.save()

    """Delete older Log Employee"""
    if pk_id:
        LogEmployee.objects.filter(log=pk_id).delete()
    for f in formset_pilot:
        f = f.save(commit=False)
        f.log = Log.objects.get(pk=pk_id) if pk_id else log_ob[log_count - 1]
        f = f.save()
    # Flight Leg section (Pop up)
    try:
        list_flight_log = get_list_session_object(request, Log.objects.filter(id_log=pk_id)[0])
    except Exception as e:
        list_flight_log = get_list_session_object(request, log_ob[log_count - 1])

    for flight_log in list_flight_log:
        if flight_log.partial_nfr == "":
            flight_log.partial_nfr = -1
        flight_log.save()

    return alert
Esempio n. 4
0
def log(request):
    if not is_login(request):
        return response_redirect_login(request)
    link_return = "/"
    """" Initial for flight log table and fuel table """
    
    flight_table = []
    log_emp_list = []
    log_loc_list = []
    log_model = None
    log = None
    max_pax = None
    locations = None
    
    log_ob = Log.objects.order_by('log_number').all()
    if log_ob:
        log_count = log_ob.count()
        log_n = log_ob[log_count-1].log_number + 1
    else:
        log_n = 1
    list_emp = Employee.objects.all().order_by('first_name')   
    
    extra_value = 1
    extra_value_pilot = 1
    if "log_id" in request.GET:
        id = request.GET["log_id"]
        a = Log_Location.objects.filter(log_id = id).count()  if id else 0
        if a >= 1: 
            extra_value = 0
        b = LogEmployee.objects.filter(log = id).count()  if id else 0
        if b >= 1: 
            extra_value_pilot = 0
        
    FuelFormSet = modelformset_factory(model = Log_Location, form = FuelForm, 
                                       can_delete=True, max_num=10, extra = extra_value)
    
    PilotFormSet = modelformset_factory(model = LogEmployee, form = PilotForm, 
                                       can_delete=True, max_num=10, extra = extra_value_pilot)
    
    if request.method == 'POST':
        print "moi vao post"
        
        formset = FuelFormSet(request.POST, request.FILES)
        formset_pilot = PilotFormSet(request.POST, request.FILES, prefix='pilots')
        
        form = LogForm(request.POST, customer = request.POST.get('customer'), 
                                model = request.POST.get('model'))
        
        if form.is_valid() and formset.is_valid() and formset_pilot.is_valid():
            pk_id = request.POST.get('id_log')
            
            save_data_form_grid(request, pk_id, form, formset, formset_pilot)
            print "sau goi ham  save_data_form_grid"
            delete_session(request)
            try:
                submit = request.POST[constant.submit]
                
                if submit:
                    print "vao submit"
                    link_return = "/search/"
            except:
                print "vao pass form.is_valid() and list_object"
                pass
            return HttpResponseRedirect(link_return)

    else:#Get data from DB and reload data into sessions
        delete_session(request)
        
        try:
            """ Initial data for session flight log  """
            log_id = request.GET["log_id"]
            formset = FuelFormSet(queryset=Log_Location.objects.filter(log_id=log_id))
            formset_pilot = PilotFormSet(queryset=LogEmployee.objects.filter(log=log_id), prefix='pilots')
            log_emp_list = LogEmployee.objects.filter(log = log_id)
            log_loc_list = Log_Location.objects.filter(log_id = log_id)
            log_object = Log.objects.get(id_log = log_id)
            flight_table = LogSection.objects.filter(log = log_object)
            list_flight_log = []
            for flight_log in flight_table:
                list_flight_log.append(serializers.serialize('json', [flight_log, ]))
            request.session[constant.list_flight_log] = list_flight_log
            
            """ Reload data for LogForm Section and AirCraft """
            log_id = request.GET["log_id"]
            log = Log.objects.get(id_log = log_id)
            log_n = log.log_number
            mod = 0

            if log.a1c.id_a1c:
                ac = log.a1c.id_a1c
                if A1C.objects.get(id_a1c = ac):
                    log_model = A1C.objects.get(id_a1c = ac).model
                    mod = log_model.id_model
                    max_pax = log_model.max_passenger
            
            form = LogForm(reload = True, customer = log_object.customer, model = log_object.a1c.model,
                                            instance=log, initial={"model": mod})
            
        except Exception as e:
            form = LogForm(customer = request.POST.get('customer'), model = request.POST.get('model'), 
                        initial={'log_number': log_n, 'user_id': request.session[constant.usernameParam]})
            formset = FuelFormSet(queryset=Log_Location.objects.none())
            formset_pilot = PilotFormSet(queryset=LogEmployee.objects.none(), prefix='pilots')
            pass
        
        list_flight_log = get_list_session_object(request)
        locations = []
        for flight_log in list_flight_log:
            if flight_log.flight_data_fuel_station:
                location = Location.objects.get(id_location = flight_log.flight_data_fuel_station.id_location) 
                if location:
                    if location not in locations:
                        locations.append(location)

        import operator
        locations.sort(key=operator.attrgetter("location_name"))
    c = {
        'form': form,
        'formset': formset,
        'formset_pilot': formset_pilot,
        'id': log_n,
        'list_emp': list_emp,
        'locations': locations,
        constant.forms:flight_table,
        "log_emp_list":log_emp_list,
        "log_model" : log_model,
        "max_pax":max_pax,
        "emp_number" : request.session[constant.usernameParam],
        "log_loc_list" : log_loc_list
        }
    c.update(csrf(request))
    
    return render(request, "flights/index.html", c)