def managerstaffing(request):
    shift_manager = ShiftManager()
    usernamequery = (str(request.user), )
    name = shift_manager.getname(usernamequery)
    shifts = Shift()
    all_shifts = shifts.ShowAllShifts()
    all_staffing = shifts.ShowAllStaffing()
    if request.method == 'POST':
        form = AddShiftForm(request.POST)
        if form.is_valid():
            flight_type = form.cleaned_data['flight_type']
            flight_date = form.cleaned_data['flight_date']
            notes = form.cleaned_data['notes']
            shift_manager.insertshift(flight_type, flight_date, notes)
            template = 'base/staffingshow.html'
            args = {
                'form': form,
                'flight_type': flight_type,
                'flight_date': flight_date
            }
    else:
        form = AddShiftForm()
        template = 'base/managerstaffing1.html'
        args = {
            'name': name,
            'all_shifts': all_shifts,
            'all_staffing': all_staffing,
            'form': form
        }
    return render(request, template, args)
def managerunmanned(request):
    username = str(request.user)
    usernamequery = (username,)
    shift_manager = ShiftManager()
    unmanned = shift_manager.unmannedshifts()
    user = shift_manager.getname(usernamequery)
    args = {'unmanned' : unmanned, 'user' : user}
    return render(request, 'base/managerunmanned1.html', args)
def Profile(request):
    if request.user.is_staff:
        shift_manager = ShiftManager()
        usernamequery = (str(request.user), )
        name = shift_manager.getname(usernamequery)
        totalgoal = shift_manager.totalgoal()
        totaldid = shift_manager.totaldid()
        remain = float(totalgoal) - float(totaldid)
        args = {
            'name': name,
            'totalgoal': totalgoal,
            'totaldid': totaldid,
            'remain': remain
        }
        return render(request, 'base/managerpage.html', args)
    else:
        username = str(request.user)
        usernamequery = (str(request.user), )
        mydb = mysql.connector.connect(host="localhost",
                                       user="******",
                                       password='******',
                                       database='flight_manager',
                                       auth_plugin='mysql_native_password')
        mycursor = mydb.cursor()
        query = """
         SELECT goal FROM flight_manager.air_crew WHERE personal_number = %s 
        """
        mycursor.execute(query, usernamequery)
        results = mycursor.fetchall()
        mydb.commit()
        for row in results:
            shift = str(row[0])
        new_shift = Shift()
        all_shifts = new_shift.ShowAllShifts()
        if len(shift) == 0:
            shift = '0'
        air_crew = AirCrew()
        future_shifts = air_crew.ShowFutureShifts(username)
        name = air_crew.getname(usernamequery)
        howmanydid = air_crew.howmanydid(username)
        howmanytot = air_crew.howmanytot(usernamequery)
        name = air_crew.getname(usernamequery)
        try:
            left = int(shift) - int(howmanydid[0])
        except:
            left = str('0')
        finally:
            args = {
                'user': name,
                'shifts': shift,
                'all_shifts': all_shifts,
                'howmanydid': howmanydid[0],
                'left': left,
                'shift': shift
            }
            return render(request, 'base/profile.html', args)
def managerapproved(request):
    if request.method == "POST":
        form = auth_air_crew(request.POST)
        form2 = delete_auth_air_crew(request.POST)
        if form.is_valid():
            shift_manager = ShiftManager()
            personal_num = form.cleaned_data['personal_number']
            shift_manager.insert_auth(personal_num)
            return redirect('/managerapproved#add')
        if form2.is_valid():
            shift_manager = ShiftManager()
            personal_num_delete =  form2.cleaned_data['Delete_Personal_Number']
            shift_manager.delete_auth(personal_num_delete)
            return redirect('/managerapproved#add')
    else:
        usernamequery = (str(request.user),)
        shift_manager = ShiftManager()
        user = shift_manager.getname(usernamequery)
        all_auth = shift_manager.show_auth()
        form = auth_air_crew()
        form2 = delete_auth_air_crew()
    args = {'form': form, 'form2' :form2, 'user':user , 'all_auth' : all_auth}
    return render(request,'base/managerauth.html',args)