def map_model(cls, soknad, data):
        soknad.kontonummer = StringUtils.keep_alnum_only(data.get('kontonummer')) if data.get('kontonummer') else None
        soknad.telefon = StringUtils.keep_alnum_only(data.get('telefon')) if data.get('telefon') else None

        SoknadRepo.update_model(soknad, 'epost', data)
        SoknadRepo.update_model(soknad, 'om_oss', data)
        SoknadRepo.update_model(soknad, 'prosjektnavn', data)
        SoknadRepo.update_model(soknad, 'beskrivelse', data)
        SoknadRepo.update_model(soknad, 'maalsetting', data)
        SoknadRepo.update_model(soknad, 'omsokt_belop', data)
        SoknadRepo.update_model(soknad, 'kommentar', data)

        if data.get('organisation_id'):
            soknad.organisation_id = data.get('organisation_id')
        else:
            soknad.organisation_id = None

        if data.get('person_id'):
            soknad.person_id = data.get('person_id')

        if data.get('arrangement') is not None:
            ArrangementRepo.update_sub_models(data.get('arrangement'), soknad, 'arrangement')

        if data.get('okonomipost') is not None:
            OkonomiPostRepo.update_sub_models(data.get('okonomipost'), soknad, 'okonomipost')

        if data.get('vedlagtlink') is not None:
            VedlagtlinkRepo.update_sub_models(data.get('vedlagtlink'), soknad, 'vedlagtlink')

        if data.get('vedlegg') is not None:
            VedleggRepo.update_sub_models(data.get('vedlegg'), soknad, 'vedlegg')
    def map_model(cls, rapport, data):
        cls.update_model(rapport, 'prosjekt_gjennomforing', data)
        cls.update_model(rapport, 'prosjekt_avvik', data)
        cls.update_model(rapport, 'budsjett_avvik', data)
        cls.update_model(rapport, 'resultat_kommentar', data)

        if data.get('arrangement') is not None:
            ArrangementRepo.update_sub_models(data.get('arrangement'), rapport, 'arrangement')

        if data.get('okonomipost') is not None:
            OkonomiPostRepo.update_sub_models(data.get('okonomipost'), rapport, 'okonomipost')

        if data.get('vedlagtlink') is not None:
            VedlagtlinkRepo.update_sub_models(data.get('vedlagtlink'), rapport, 'vedlagtlink')

        if data.get('vedlegg') is not None:
            VedleggRepo.update_sub_models(data.get('vedlegg'), rapport, 'vedlegg')
    def get(self, soknad_id, saksvedlegg_id):

        soknad = SoknadRepo.find_by_id(soknad_id)

        ensure(GET, soknad)

        try:
            saksvedlegg = VedleggRepo.find_by_id(saksvedlegg_id)
            doc_path = "%s/%s" %(DOC_PATH, get_rel_saksvedlegg_path(soknad))

            return send_from_directory(doc_path,
                                       saksvedlegg.file_ref,
                                       as_attachment=True,
                                       attachment_filename=saksvedlegg.filnavn.encode("utf-8"))
        except NotFound:
            abort(400, __error__=['Vedlegg med id %d finnes ikke' % saksvedlegg_id])