def settings_groups_delete(self): _ = self.request.translate group_id = self.request.matchdict['group_id'] if group_id != 1: group = DBSession.query(Group).get(group_id) DBSession.delete(group) return HTTPFound(location='/settings/groups/')
def settings_users_delete(self): if self.request.redirect_forbidden: return HTTPFound(location='/forbidden/') elif userhelpers.checkUserPasswordChangeNeed(self.request): return HTTPFound(location='/settings/me/edit/') _ = self.request.translate user_id = self.request.matchdict['user_id'] if user_id != 1: user = DBSession.query(User).get(user_id) userAudit = UserAudit(self.request.user.id) userAudit.model = 'User' userAudit.model_id = user.id userAudit.action = 'Deleted' userAudit.revision = user.metadata_revision DBSession.add(userAudit) DBSession.flush() DBSession.delete(user) self.request.session.flash(_(u"User deleted."), 'success') return HTTPFound(location='/settings/users/')
def medical_card_edit(self): if self.request.redirect_forbidden: return HTTPFound(location='/forbidden/') elif userhelpers.checkUserPasswordChangeNeed(self.request): return HTTPFound(location='/settings/me/edit/') _ = self.request.translate card_id = self.request.matchdict['card_id'] medicalCard = DBSession.query(MedicalCard).filter(MedicalCard.id==card_id).first() participant_id = medicalCard.participant_id participant = DBSession.query(Participant).filter(Participant.id==participant_id).first() participant.getParticipantMedicalData() medicalCardEvents = DBSession.query(MedicalCardEvent).filter(MedicalCardEvent.card_id==card_id).order_by(MedicalCardEvent.event_time).all() medicalParticipantAdditional = DBSession.query(MedicalParticipantAdditional).filter(MedicalParticipantAdditional.participant_id==participant_id).first() reasons = DBSession.query(MedicalReason).order_by(MedicalReason.title).all() treatmenttypes = DBSession.query(MedicalTreatmentType).order_by(MedicalTreatmentType.title).all() methodsofarrival = DBSession.query(MedicalMethodOfArrival).order_by(MedicalMethodOfArrival.title).all() if self.request.method == 'POST': # save card medicalCard.hospital_in = helpers.parseFinnishDateFromString(self.request.POST.get('hospital_in'), True) medicalCard.hospital_out = helpers.parseFinnishDateFromString(self.request.POST.get('hospital_out')) medicalCard.method_of_arrival = int(self.request.POST.get('method_of_arrival')) medicalCard.medications = int(self.request.POST.get('medications')) medicalCard.medications_info = self.request.POST.get('medications_info').strip() medicalCard.treatment_type = int(self.request.POST.get('treatment_type')) medicalCard.reason_id = int(self.request.POST.get('reason_id')) medicalCard.diagnose = self.request.POST.get('diagnose').strip() medicalCard.followup_going = self.request.POST.get('followup_going').strip() medicalCard.followup_notes = self.request.POST.get('followup_notes').strip() medicalCard.card_status = int(self.request.POST.get('card_status').strip()) DBSession.add(medicalCard) DBSession.flush() #save participant additional medicalParticipantAdditional.hetu = self.request.POST.get('additional_hetu').strip() medicalParticipantAdditional.notes = self.request.POST.get('additional_notes').strip() medicalParticipantAdditional.insurance = int(self.request.POST.get('additional_insurance')) medicalParticipantAdditional.insurance_company = self.request.POST.get('additional_insurance_company').strip() medicalParticipantAdditional.insurance_number = self.request.POST.get('additional_insurance_number').strip() DBSession.add(medicalParticipantAdditional) DBSession.flush() #save card event if len(self.request.POST.getall('event_id')) > 0: event_ids = self.request.POST.getall('event_id') if len(medicalCardEvents) > 0: for medicalCardEvent in medicalCardEvents: if str(medicalCardEvent.id) not in event_ids: DBSession.delete(medicalCardEvent) DBSession.flush() event_times = self.request.POST.getall('event_time') event_writers = self.request.POST.getall('event_writer') event_types = self.request.POST.getall('event_type') event_notes = self.request.POST.getall('event_notes') for key, event_note in enumerate(event_notes): if event_note != '': event_time = event_times[key] event_id = event_ids[key] event_writer = event_writers[key] event_type = event_types[key] event_time_dt = helpers.parseFinnishDateFromString(event_time) if int(event_ids[key]) == 0: tmp_event = MedicalCardEvent() tmp_event.card_id = medicalCard.id else: tmp_event = DBSession.query(MedicalCardEvent).get(event_ids[key]) tmp_event.notes = event_note tmp_event.event_time = helpers.parseFinnishDateFromString(event_time) tmp_event.writer = event_writer tmp_event.event_type = event_type DBSession.add(tmp_event) DBSession.flush() elif len(medicalCardEvents) > 0: for event in medicalCardEvents: DBSession.delete(event) DBSession.flush() # save participant medical if len(self.request.POST.getall('medical_diet'))>0: participant.medical_data.diets = DBSession.query(ParticipantMedicalDiet).filter(ParticipantMedicalDiet.id.in_(self.request.POST.getall('medical_diet'))).all() if len(self.request.POST.getall('medical_food_allergy'))>0: participant.medical_data.food_allergies = DBSession.query(ParticipantMedicalFoodAllergy).filter(ParticipantMedicalFoodAllergy.id.in_(self.request.POST.getall('medical_food_allergy'))).all() participant.medical_data.additional_food = self.request.POST.get('medical_additional_food').strip() participant.medical_data.drugs_help = int(self.request.POST.get('medical_drugs_help')) participant.medical_data.illnesses = self.request.POST.get('medical_illnesses').strip() if len(self.request.POST.getall('medical_allergy'))>0: participant.medical_data.allergies = DBSession.query(ParticipantMedicalAllergy).filter(ParticipantMedicalAllergy.id.in_(self.request.POST.getall('medical_allergy'))).all() participant.medical_data.additional_health = self.request.POST.get('medical_additional_health').strip() participant.medical_data.week_of_pregnancy = self.request.POST.get('medical_week_of_pregnancy').strip() participant.medical_data.participant_id = participant_id DBSession.add(participant.medical_data) DBSession.flush() return HTTPFound(location='/medical/card/view/'+str(medicalCard.id)+'/') self.request.bread.append({'url':'/medical/', 'text':_('Medical')}) self.request.bread.append({'url':'/medical/card/edit/'+str(card_id)+'/', 'text':_('Edit card')}) return {'medicalCard':medicalCard, 'participant':participant, 'medicalParticipantAdditional':medicalParticipantAdditional, 'medicalCardEvents':medicalCardEvents, 'reasons':reasons, 'treatmenttypes':treatmenttypes, 'methodsofarrival':methodsofarrival}