def rsvps(brigadeid=None): ''' Show the Brigade rsvps ''' if brigadeid: if not cfapi.is_existing_organization(brigadeid): return render_template('404.html'), 404 if not brigadeid: got = get(cfapi.BASE_URL + "/events/rsvps") else: got = get(cfapi.BASE_URL + "/organizations/%s/events/rsvps" % brigadeid) rsvps = got.json() if rsvps["weekly"]: # GCharts wants a list of lists rsvps["weeks"] = [] for key, value in rsvps["weekly"].iteritems(): week = [str(key), value] rsvps["weeks"].append(week) rsvps["weeks"] = sorted(rsvps["weeks"], key=itemgetter(0)) rsvps["this_week"] = 0 rsvps["last_week"] = 0 if len(rsvps["weeks"]) >= 1: rsvps["this_week"] = rsvps["weeks"][-1][1] if len(rsvps["weeks"]) >= 2: rsvps["last_week"] = rsvps["weeks"][-2][1] return render_template("rsvps.html", brigadeid=brigadeid, rsvps=rsvps)
def projects(brigadeid=None): ''' Display a list of projects ''' # is this an exisiting group if brigadeid: if not cfapi.is_existing_organization(brigadeid): return render_template('404.html'), 404 # Get the params projects = [] brigade = None search = request.args.get("q", None) page = request.args.get("page", None) status = request.args.get("status", None) organization_type = request.args.get("organization_type", None) # Set next if page: if brigadeid: next = "/brigade/" + brigadeid + "/projects?page=" + str( int(page) + 1) else: next = "/brigade/projects?page=" + str(int(page) + 1) else: if brigadeid: next = "/brigade/" + brigadeid + "/projects?page=2" else: next = "/brigade/projects?page=2" # build the url if brigadeid: url = cfapi.BASE_URL + "/organizations/" + brigadeid + "/projects" # set the brigade name if projects: brigade = projects[0]["organization"] else: brigade = {"name": brigadeid.replace("-", " ")} else: # build cfapi url url = cfapi.BASE_URL + "/projects" url += "?sort_by=last_updated" if search: url += "&q=" + search if page: url += "&page=" + page if status: url += "&status=" + status if organization_type: url += "&organization_type=" + organization_type projects = cfapi.get_projects(projects, url) return render_template("projects.html", projects=projects, brigade=brigade, next=next)
def brigade(brigadeid): ''' Get this Brigade's info ''' if brigadeid: if not cfapi.is_existing_organization(brigadeid): return render_template('404.html'), 404 got = get(cfapi.BASE_URL + "/organizations/" + brigadeid) brigade = got.json() return render_template("brigade.html", brigade=brigade, brigadeid=brigadeid)
def projects(brigadeid=None): ''' Display a list of projects ''' # is this an exisiting group if brigadeid: if not cfapi.is_existing_organization(brigadeid): return render_template('404.html'), 404 # Get the params projects = [] brigade = None search = request.args.get("q", None) page = request.args.get("page", 1, int) status = request.args.get("status", None) organization_type = request.args.get("organization_type", None) # Set next next = url_for('.projects', brigadeid=brigadeid, page=page + 1) # build the url if brigadeid: url = cfapi.BASE_URL + "/organizations/" + brigadeid + "/projects" else: url = cfapi.BASE_URL + "/projects" query = {"sort_by": "last_updated"} if search: query.update({"q": search}) if page: query.update({"page": page}) if status: query.update({"status": status}) if organization_type: query.update({"organization_type": organization_type}) url += '?' + urllib.urlencode(query) projects = cfapi.get_projects(projects, url) # set the brigade name if brigadeid: if len(projects): brigade = projects[0]["organization"] else: brigade = {"name": brigadeid.replace("-", " ")} return render_template("projects.html", projects=projects, brigade=brigade, next=next)
def brigade(brigadeid): ''' Get this Brigade's info ''' if brigadeid: if not cfapi.is_existing_organization(brigadeid): return render_template('404.html'), 404 got = get(cfapi.BASE_URL + "/organizations/" + brigadeid) brigade = got.json() ''' If Brigade has upcoming events, check if the next event is happening today ''' if 'current_events' in brigade and len(brigade['current_events']) > 0: event_date = dateutil.parser.parse( brigade['current_events'][0]['start_time']).strftime('%Y-%m-%d') todays_date = datetime.now().strftime('%Y-%m-%d') if event_date == todays_date: brigade['current_events'][0]['is_today'] = True return render_template("brigade.html", brigade=brigade, brigadeid=brigadeid)