def people(self): """Render people, former members, and each person""" rc = self.rc peeps_dir = os.path.join(self.bldir, "people") former_peeps_dir = os.path.join(self.bldir, "former") os.makedirs(peeps_dir, exist_ok=True) os.makedirs(former_peeps_dir, exist_ok=True) peeps = self.gtx["people"] #peeps = all_docs_from_collection(rc.client), "people") for p in peeps: names = frozenset(p.get("aka", []) + [p["name"]]) pubs = filter_publications( all_docs_from_collection(rc.client, "citations"), names, reverse=True, bold=False, ) bibfile = make_bibtex_file(pubs, pid=p["_id"], person_dir=peeps_dir) ene = p.get("employment", []) + p.get("education", []) ene.sort(key=ene_date_key, reverse=True) for e in ene: dereference_institution( e, all_docs_from_collection(rc.client, "institutions")) projs = filter_projects( all_docs_from_collection(rc.client, "projects"), names) for serve in p.get("service", []): serve_dates = get_dates(serve) date = serve_dates.get("date") if not date: date = serve_dates.get("end_date") if not date: date = serve_dates.get("begin_date") serve["year"] = date.year serve["month"] = date.month sns = p.get("service", []) sns.sort(key=ene_date_key, reverse=True) p["service"] = sns self.render( "person.html", os.path.join("people", p["_id"] + ".html"), p=p, title=p.get("name", ""), pubs=pubs, names=names, bibfile=bibfile, education_and_employment=ene, projects=projs, ) self.render("people.html", os.path.join("people", "index.html"), title="People") self.render( "former.html", os.path.join("former", "index.html"), title="Former Members", )
def latex(self): """Render latex template""" rc = self.rc for p in self.gtx["people"]: # so we don't modify the dbs when de-referencing names = frozenset(p.get("aka", []) + [p["name"]]) pubs = filter_publications( all_docs_from_collection(rc.client, "citations"), names, reverse=True, ) bibfile = make_bibtex_file( pubs, pid=p["_id"], person_dir=self.bldir ) emp = p.get("employment", []) for e in emp: e['position'] = e.get('position_full', e.get('position').title()) emp.sort(key=ene_date_key, reverse=True) edu = p.get("education", []) edu.sort(key=ene_date_key, reverse=True) teach = p.get("teaching", []) for t in teach: t['position'] = t.get('position').title() projs = filter_projects( all_docs_from_collection(rc.client, "projects"), names ) grants = list(all_docs_from_collection(rc.client, "grants")) pi_grants, pi_amount, _ = filter_grants(grants, names, pi=True) coi_grants, coi_amount, coi_sub_amount = filter_grants( grants, names, pi=False ) aghs = awards_grants_honors(p) # TODO: pull this out so we can use it everywhere for ee in [emp, edu]: for e in ee: dereference_institution(e, self.gtx["institutions"]) self.render( "cv.tex", p["_id"] + ".tex", p=p, title=p.get("name", ""), aghs=aghs, pubs=pubs, names=names, bibfile=bibfile, education=edu, employment=emp, projects=projs, pi_grants=pi_grants, pi_amount=pi_amount, coi_grants=coi_grants, coi_amount=coi_amount, coi_sub_amount=coi_sub_amount, ) self.pdf(p["_id"])
def latex(self): """Render latex template""" for rev in self.gtx["proposalReviews"]: outname = "{}_{}".format(_id_key(rev), rev["reviewer"]) multiauth = False if isinstance(rev["names"], str): rev["names"] = [rev["names"]] if len(rev["names"]) > 1: multiauth = True firstauthor = HumanName(rev["names"][0]) firstauthorlastname = firstauthor.last if isinstance(rev.get("institutions", ""), str): rev["institutions"] = [rev.get("institutions", "")] if len(rev["institutions"]) == 0: rev["institutions"] = [""] institution_docs = [] for inst in rev["institutions"]: instdoc = {"institution": inst} dereference_institution(instdoc, self.gtx["institutions"]) if not instdoc: instdoc = {"institution": inst} institution_docs.append(instdoc) if isinstance(rev["freewrite"], str): rev["freewrite"] = [rev["freewrite"]] self.render( "propreport.txt", "{}.txt".format(outname), trim_blocks=True, agency=rev["agency"], appropriateness=rev["doe_appropriateness_of_approach"], title=rev["title"], institution=institution_docs[0].get("institution"), multiauthor=multiauth, firstAuthorLastName=firstauthorlastname, competency=rev["competency_of_team"], adequacy=rev["adequacy_of_resources"], does_what=rev["does_what"], relevance=rev["doe_relevance_to_program_mission"], budget=rev["doe_reasonableness_of_budget"], does_how=rev["does_how"], goals=rev["goals"], importance=rev["importance"], summary=rev["summary"], freewrite=rev["freewrite"], broader_impacts=rev["nsf_broader_impacts"], creativity_originality=rev["nsf_create_original_transformative"], benefit_to_society=rev["nsf_pot_to_benefit_society"], plan_good=rev["nsf_plan_good"], advance_knowledge=rev["nsf_pot_to_advance_knowledge"] )
def latex(self): """Render latex template""" rc = self.rc for p in self.gtx["people"]: # so we don't modify the dbs when de-referencing names = frozenset(p.get("aka", []) + [p["name"]] + [p["_id"]]) begin_period = date(1650, 1, 1) pubs = filter_publications( all_docs_from_collection(rc.client, "citations"), names, reverse=True, ) bibfile = make_bibtex_file(pubs, pid=p["_id"], person_dir=self.bldir) emp = p.get("employment", []) for e in emp: e['position'] = e.get('position_full', e.get('position').title()) emp.sort(key=ene_date_key, reverse=True) edu = p.get("education", []) edu.sort(key=ene_date_key, reverse=True) teach = p.get("teaching", []) for t in teach: t['position'] = t.get('position').title() projs = filter_projects( all_docs_from_collection(rc.client, "projects"), names) just_grants = list(all_docs_from_collection(rc.client, "grants")) just_proposals = list( all_docs_from_collection(rc.client, "proposals")) grants = merge_collections_superior(just_proposals, just_grants, "proposal_id") presentations = filter_presentations(self.gtx["people"], self.gtx["presentations"], self.gtx["institutions"], p.get("_id"), statuses=["accepted"]) for grant in grants: for member in grant.get("team"): dereference_institution(member, self.gtx["institutions"]) pi_grants, pi_amount, _ = filter_grants(grants, names, pi=True) coi_grants, coi_amount, coi_sub_amount = filter_grants(grants, names, pi=False) aghs = awards_grants_honors(p, "honors") service = awards_grants_honors(p, "service", funding=False) # TODO: pull this out so we can use it everywhere for ee in [emp, edu]: for e in ee: dereference_institution(e, self.gtx["institutions"]) undergrads = filter_employment_for_advisees( self.gtx["people"], begin_period, "undergrad") masters = filter_employment_for_advisees(self.gtx["people"], begin_period, "ms") currents = filter_employment_for_advisees(self.gtx["people"], begin_period, "phd") graduateds = filter_employment_for_advisees( self.gtx["people"], begin_period, "phd") postdocs = filter_employment_for_advisees(self.gtx["people"], begin_period, "postdoc") visitors = filter_employment_for_advisees(self.gtx["people"], begin_period, "visitor-unsupported") iter = deepcopy(graduateds) for g in iter: if g.get("active"): graduateds.remove(g) iter = deepcopy(currents) for g in iter: if not g.get("active"): currents.remove(g) self.render( "cv.tex", p["_id"] + ".tex", p=p, title=p.get("name", ""), aghs=aghs, service=service, undergrads=undergrads, masters=masters, currentphds=currents, graduatedphds=graduateds, postdocs=postdocs, visitors=visitors, pubs=pubs, names=names, bibfile=bibfile, education=edu, employment=emp, presentations=presentations, sentencecase=sentencecase, monthstyle=month_fullnames, projects=projs, pi_grants=pi_grants, pi_amount=pi_amount, coi_grants=coi_grants, coi_amount=coi_amount, coi_sub_amount=coi_sub_amount, ) self.pdf(p["_id"])