def query_soknader(self, facets): kwargs = {} for facet in facets: if facet.name == u"Søker": kwargs['sokere'] = self.convert_facet_value_to_list_of_values(facet.values) elif facet.name == u"Status": kwargs['soknad_states'] = self.convert_facet_value_to_list_of_values(facet.values) elif facet.name == u"Tilskuddsordning": kwargs['tilskuddsordninger'] = self.convert_facet_value_to_list_of_values(facet.values) elif facet.name == u"Saksbehandler": kwargs['saksbehandlere'] = self.convert_facet_value_to_list_of_values(facet.values) elif facet.name == u"Dato levert": kwargs['levert_period_names'] = self.convert_facet_value_to_list_of_values(facet.values) else: current_app.logger.warn("Ignoring unknown facet: %s" % facet) user = get_user_from_auth() if is_soker(user): # external users can see soknader for all the organisations they are member of # and those without any org which they have registered themselves organisations = get_organisations_for_person(user["person_id"], request.cookies) kwargs['restrict_to_organisations'] = [organisation["id"] for organisation in organisations] kwargs['registered_by_person'] = user["person_id"] return self.repo.find_soknader(**kwargs) elif is_saksbehandler(user) or is_godkjenner(user): # saksbehandlere og godkjennere skal ikke se søknadene i status "kladd" kwargs['exclude_soknad_states'] = ['Kladd'] return self.repo.find_soknader(**kwargs) else: abort(400, message="The following user cannot query soknader: %s" % user)
def output(self, key, data): value = super(RapportListe, self).output(key, data) # søkar får alltid sjå rapport if is_soker(self.user): return value # saksbehandlar og godkjennar får ikkje sjå rapport når rapport er under arbeid elif is_saksbehandler(self.user) or is_godkjenner(self.user): return value if data.status is not None and data.status not in [SoknadStateMachine.s_rapport_pabegynt.id, SoknadStateMachine.s_avventer_rapport] else [] return None
def output(self, key, data): value = super(VedtakListe, self).output(key, data) # søkar får berre sjå vedtak med vedtaksdato if is_soker(self.user): return [item for item in value if item.get('vedtaksdato', None) is not None] # saksbehandlar og godkjennar får sjå alle vedtak elif is_saksbehandler(self.user) or is_godkjenner(self.user): return value # andre skal ikkje sjå nokon vedtak return None
def get(self, tilskuddsordning_id=None): user = get_user_from_auth() if tilskuddsordning_id: tilskuddsordning = self.get_by_id(tilskuddsordning_id) ensure(GET, tilskuddsordning) marshalled = marshal(tilskuddsordning, tilskuddsordning_fields) if is_administrator(user) or is_saksbehandler(user) or is_godkjenner(user): marshalled["vedtatt_belop"] = self.get_vedtatt_belop(tilskuddsordning_id) return marshalled else: if is_soker(user): return marshal(self.repo.find_by_where("publisert", True), tilskuddsordning_fields) else: return marshal(self.repo.find_all(), tilskuddsordning_fields)
def vedtak_fields(): user = get_user_from_auth() sf = { 'id': fields.Integer, 'vedtatt_belop': fields.Integer, 'vedtaksdato': ISO8601DateTime, 'vedtakstekst': fields.String, 'andre_opplysninger': fields.String, 'rapportfrist': ISO8601DateTime, 'endre_rapportfrist_arsak': fields.String, 'behandlet_av_formannskapet': fields.Boolean, 'tilskuddsordning_type': fields.String } if is_saksbehandler(user) or is_godkjenner(user): sf["innstilt_belop"] = fields.Integer sf["intern_merknad"] = fields.String return sf
def soknad_fields(): user = get_user_from_auth() sf = { 'id': fields.Integer, 'tilskuddsordning': fields.Nested(tilskuddsordning_light_fields), 'person_id': fields.Integer, 'saksbehandler_id': fields.String, 'organisation_id': fields.Integer, 'status': Status(user=user), 'omsokt_belop': fields.Integer, 'epost': fields.String, 'kontonummer': fields.String, 'telefon': fields.String, 'om_oss': fields.String, 'prosjektnavn': fields.String, 'beskrivelse': fields.String, 'maalsetting': fields.String, 'kommentar': fields.String, 'trukket_kommentar': fields.String, 'merknad': fields.String, 'levert_dato': ISO8601DateTime, 'vedlegg': fields.List(fields.Nested(vedlegg_fields)), 'vedlagtlink': fields.List(fields.Nested(vedlagtlink_fields)), 'arrangement': fields.List(fields.Nested(arrangement_fields)), 'okonomipost': fields.List(fields.Nested(okonomipost_fields)), 'rapport': RapportListe(fields.Nested(rapport_soknad_fields), user=user), 'vedtak': VedtakListe(fields.Nested(vedtak_fields()), user=user), 'klage': fields.List(fields.Nested(klage_fields)), 'utbetaling': fields.List(fields.Nested(utbetaling_fields)), 'avskrevet_rapportkrav_kommentar': fields.String } if is_saksbehandler(user) or is_godkjenner(user): sf["saksvedlegg"] = fields.List(fields.Nested(saksvedlegg_fields)) return sf