def species(group_code): from art17.species import get_dal species_dataset = get_dal() if not species_dataset: flask.flash('No active consultation', 'danger') return flask.redirect('/') user_id = flask.g.identity.id data_by_region = ( species_dataset .get_subject_region_overview_consultation(user_id) ) relevant_regions = set(reg for n, reg in data_by_region) bioreg_list = [ r for r in dal.get_biogeo_region_list() if r.code in relevant_regions ] return flask.render_template( 'consultation/species.html', **{ 'bioreg_list': bioreg_list, 'tabmenu_data': list(get_tabmenu_data()), 'species_group': dal.get_species_group(group_code), 'species_list': dal.get_species_list(group_code=group_code), 'data_by_region': data_by_region, })
def get_context_data(self): dal_object = self.ds_model(self.dataset_id) dataset = models.Dataset.query.get_or_404(self.dataset_id) object_regions = dal_object.get_subject_region_overview_aggregation() relevant_regions = set(reg for n, reg in object_regions) bioreg_list = dal.get_biogeo_region_list(relevant_regions) if dataset.preview: tabmenu = get_tabmenu_preview(dataset) else: tabmenu = list(get_tabmenu_data(dataset)) return { 'current_tab': self.current_tab, 'bioreg_list': bioreg_list, 'tabmenu_data': tabmenu, 'dataset_url': flask.url_for('.dashboard', dataset_id=self.dataset_id), 'dataset_id': self.dataset_id, 'object_list': self.get_object_list(dataset), 'object_regions': object_regions, 'dataset': dataset, 'habitat_count': dataset.agg_habitat.count(), 'species_count': dataset.agg_species.count(), }
def get_context(self, **kwargs): checklist_id = get_reporting_id() current_checklist = get_checklist(checklist_id) checklist_id = current_checklist.id species_refvals = load_species_refval() species_checklist = get_species_checklist(dataset_id=checklist_id) species_data = parse_checklist_ref(species_checklist) species_list = get_species_checklist(groupped=True, dataset_id=checklist_id) habitat_refvals = load_habitat_refval() habitat_checklist = get_habitat_checklist(dataset_id=checklist_id) habitat_data = parse_checklist_ref(habitat_checklist) habitat_list = get_habitat_checklist(distinct=True, dataset_id=checklist_id, groupped=True) relevant_regions = ( {s.bio_region for s in species_checklist}.union( {h.bio_region for h in habitat_checklist} )) bioreg_list = dal.get_biogeo_region_list(relevant_regions) groups = dict( LuGrupSpecie.query .with_entities(LuGrupSpecie.code, LuGrupSpecie.description) ) return dict( species_refvals=species_refvals, species_data=species_data, species_list=species_list, habitat_refvals=habitat_refvals, habitat_data=habitat_data, habitat_list=habitat_list, bioreg_list=bioreg_list, GROUPS=groups, current_checklist=current_checklist, page='refvalues', )
def aggregation_missing_data_report(dataset_id): dataset = models.Dataset.query.get_or_404(dataset_id) species = dataset.species_objs.filter_by(cons_role=ROLE_MISSING) habitats = dataset.habitat_objs.filter_by(cons_role=ROLE_MISSING) species_list = set([s.species for s in species]) habitat_list = set([h.habitat for h in habitats]) species_regions = {(s.subject_id, s.region): 0 for s in species} habitat_regions = {(h.subject_id, h.region): 0 for h in habitats} relevant_regions = [ a[1] for a in species_regions.keys() + habitat_regions.keys() ] bioreg_list = dal.get_biogeo_region_list(relevant_regions) return { 'missing_species': species, 'species_regions': species_regions, 'species_list': species_list, 'habitat_list': habitat_list, 'missing_habitats': habitats, 'habitat_regions': habitat_regions, 'bioreg_list': bioreg_list, }
def habitats(): from art17.habitat import get_dal habitat_dataset = get_dal() if not habitat_dataset: flask.flash('No active consultation', 'danger') return flask.redirect('/') user_id = flask.g.identity.id data_by_region = ( habitat_dataset .get_subject_region_overview_consultation(user_id) ) relevant_regions = set(reg for n, reg in data_by_region) bioreg_list = [ r for r in dal.get_biogeo_region_list() if r.code in relevant_regions ] return flask.render_template( 'consultation/habitat.html', **{ 'bioreg_list': bioreg_list, 'tabmenu_data': list(get_tabmenu_data()), 'habitat_list': dal.get_habitat_list(), 'data_by_region': data_by_region, })
def compare_datasets(dataset1, dataset2): d1 = models.Dataset.query.get_or_404(dataset1) d2 = models.Dataset.query.get_or_404(dataset2) conclusions_s_d1 = d1.species_objs.filter_by(cons_role=ROLE_FINAL) conclusions_s_d2 = d2.species_objs.filter_by(cons_role=ROLE_FINAL) relevant_regions = set([r[0] for r in ( list(conclusions_s_d1.with_entities(models.DataSpeciesRegion.region) .distinct()) + list(conclusions_s_d2.with_entities(models.DataSpeciesRegion.region) .distinct()) ) if r[0]]) s_data = {} for r in conclusions_s_d1: if r.species not in s_data: s_data[r.species] = {'d1': {}, 'd2': {}} s_data[r.species]['d1'][r.region] = r for r in conclusions_s_d2: if r.species not in s_data: s_data[r.species] = {'d1': {}, 'd2': {}} s_data[r.species]['d2'][r.region] = r if None in s_data: del s_data[None] s_stat = {'objs': 0, 'diff': 0} for k, v in s_data.iteritems(): for reg, ass in v['d1'].iteritems(): ass2 = v['d2'].get(reg, None) if (not ass2 or ass2.conclusion_assessment != ass.conclusion_assessment): s_stat['diff'] += 1 s_stat['objs'] += 1 conclusions_h_d1 = d1.habitat_objs.filter_by(cons_role=ROLE_FINAL) conclusions_h_d2 = d2.habitat_objs.filter_by(cons_role=ROLE_FINAL) h_data = {} for r in conclusions_h_d1: if r.habitat not in h_data: h_data[r.habitat] = {'d1': {}, 'd2': {}} h_data[r.habitat]['d1'][r.region] = r for r in conclusions_h_d2: if r.habitat not in h_data: h_data[r.habitat] = {'d1': {}, 'd2': {}} h_data[r.habitat]['d2'][r.region] = r if None in h_data: del h_data[None] h_stat = {'objs': 0, 'diff': 0} for k, v in h_data.iteritems(): for reg, ass in v['d1'].iteritems(): ass2 = v['d2'].get(reg, None) if (not ass2 or ass2.conclusion_assessment != ass.conclusion_assessment): h_stat['diff'] += 1 h_stat['objs'] += 1 bioreg_list = dal.get_biogeo_region_list(relevant_regions) return render_template( 'aggregation/compare_datasets.html', species_data=s_data, dataset1=d1, dataset2=d2, bioreg_list=bioreg_list, habitat_data=h_data, s_stat=s_stat, h_stat=h_stat, page='compare', )