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})
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
def build_date(date_str): """Parse date out of string.""" return make_date(*map(int, date_str.split('-')))
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})
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