Example #1
0
def addMeals(request, club):
    """Renders the page for adding meals from the club account."""
    
    # Verify that the session is valid
    try:
        club0 = request.session['club']
    except:
        return redirect('/index/')
    if club0 != club:
        return redirect('/index/')
  
    Cclub = get_object_or_404(Club, account__username=club0)

    added = False
    err = False
    errmes=''
    confirm = None

    if 'confirm' in request.POST:
        try:
            dates = request.POST['date_input'].split('/')
            date = make_date(int(dates[2]), int(dates[0]), int(dates[1]))
            host = Member.objects.get(netid=request.POST['host'])
            guest = Member.objects.get(netid=request.POST['guest'])
            confirm = makeexchange(Cclub.check, request.POST['meal_input'], host, guest, date)
        except Exception, e:
            errmes = 'Errors in form. Please reswipe.'

        return render_to_response('card/meals_add.html',
                                  {'onload':'select_elem()',
                                   'form':AddMealForm(),
                                   'confirm':confirm,
                                   'today':datetime.today().strftime('%m/%d/%Y'),
                                   'errmes': errmes,
                                   'club': club})
Example #2
0
def extrap_issues(name: str, months: list, weight: int, website: str) -> list:
    wt = -1 * weight
    mo_idx = tuple([i + 1 for i, x in enumerate(months) if x])
    issues = [
        Issue(name, make_date(y, m, 1), wt, website)
        for y in range(YEAR0, 2018 + 1) for m in mo_idx
    ]

    # Drop future issues
    TODAY = datetime.today()
    issues = [x for x in issues if diff_in_months(TODAY, x.date) >= 0]

    return issues
Example #3
0
def build_date(date_str):
    """Parse date out of string."""
    return make_date(*map(int, date_str.split('-')))
Example #4
0
def listMeals(request, club):
    # Verify that the session is valid
    try:
        club0 = request.session['club']
    except:
        return redirect('/index/')
    if club0 != club:
        return redirect('/index/')
    
    #Get club
    Cclub = get_object_or_404(Club, account__username=club0)
    errmsg = ''
    
    if request.method == 'GET':
        try:
            memberID = request.GET['memberID']
            otherID = request.GET['otherID']
            oClub = request.GET['oClub']
            status = request.GET['status']
            date = request.GET['date']
            meal = request.GET['meal']
            iChecker = request.GET['oChecker']
        except:
            memberID = ''
            otherID = ''
            oClub = ''
            status = ''
            date = ''
            meal = ''
            date_obj = None
            iChecker = ''


        if (iChecker.lower() == 'club'):
            oChecker = 'check'
        else:
            oChecker = iChecker

        if meal == 'Any':
            meal = ''

        if date == '':
            date_obj = None

        else:
            err = False
            try:
                date_tok = date.split('/')
                date_obj = make_date(int(date_tok[2]),
                                     int(date_tok[0]),
                                     int(date_tok[1]))
            except Exception, e:
                errmes = 'Error: Incorrect date format. Correct format is MM/DD/YYYY.'
                err = True
            if err:
                return render_to_response('card/meals_list.html',
                                          {'club': club0,
                                           'memberID': memberID,
                                           'otherID': otherID,
                                           'oClub': oClub,
                                           'oChecker': iChecker,
                                           'status': status,
                                           'date': date,
                                           'meal': meal,
                                           'hostinc':None,
                                           'guestinc':None,
                                           'date_obj':None,
                                           'hostcomp':None,
                                           'guestcomp':None,
                                           'errmsg': errmsg})
Example #5
0
def stats(request, club, graphtype):
    """Renders month-long stats for a club."""

    # Verify that the session is valid
    try:
        club0 = request.session['club']
    except:
        return redirect('/index/')
    if club0 != club:
        return redirect('/index/')

    # overall
    hostExchanges = Exchange.objects.filter(Q(meal_1__host__club__account__username=club)|Q(meal_2__host__club__account__username=club))
    hostnum = len(hostExchanges)
    guestExchanges = Exchange.objects.filter(Q(meal_1__guest__club__account__username=club)|Q(meal_2__guest__club__account__username=club))
    guestnum = len(guestExchanges)

    mealtypes = ['Breakfast', 'Brunch', 'Lunch', 'Dinner', 'Other']
    meals = []
    
    # by meal
    for meal in mealtypes:
        type = meal
        mealsout = len(Exchange.objects.filter(Q(meal_1__guest__club__account__username=club) | Q(meal_2__guest__club__account__username=club)).filter(meal_1__meal_type=type))
        mealsin = len(Exchange.objects.filter(Q(meal_1__host__club__account__username=club) | Q(meal_2__host__club__account__username=club)).filter(meal_1__meal_type=type))
        meals.append({'type': type, 'mealsout': mealsout, 'mealsin': mealsin})

    # by club
    clubmeals = []
    clubs = Club.objects.all()
    for clubex in clubs:
        clubname = clubex.name
        if (clubname.lower() != club):
            clubname = clubname.replace(' ','')
            mealsout = len(Exchange.objects.filter(Q(meal_1__guest__club__account__username=club) | Q(meal_2__guest__club__account__username=club)).filter(Q(meal_1__host__club__account__username=clubname)|Q(meal_2__host__club__account__username=clubname)))
            mealsin = len(Exchange.objects.filter(Q(meal_1__host__club__account__username=club) | Q(meal_2__host__club__account__username=club)).filter( Q(meal_1__guest__club__account__username=clubname) | Q(meal_2__guest__club__account__username=clubname)))
            clubmeals.append({'clubname': clubname, 'mealsout': mealsout, 'mealsin': mealsin})

    #meals by date
    datemeals = []
    today = date.today()
    daycount = make_date(day = 1, month = today.month, year=today.year)
    day = timedelta(days = 1)

    while (daycount.month == today.month):
        mealsout = len(Meal.objects.filter(guest__club__account__username=club).filter(date=daycount))
        mealsin = len(Meal.objects.filter(host__club__account__username=club).filter(date=daycount))
        datemeals.append({'day': daycount.day, 'mealsout': mealsout, 'mealsin': mealsin})
        daycount = daycount + day

    #did user select a graph or table?
    if (graphtype == 'graph'):
        graph = 1
    else:
        graph = None
    
    response = render_to_response('card/stats.html',
                                  {'club': club,
                                   'hostnum': hostnum,
                                   'guestnum': guestnum,
                                   'meals': meals,
                                   'clubmeals': clubmeals,
                                   'datemeals': datemeals,
                                   'graph': graph})
    return response