def json_search_participant(self): _ = self.request.translate if self.request.method == 'POST': search_string = self.request.POST.get('searchstr').strip() if search_string == '': self.request.session.flash(_(u"Empty search, please provide search string."), 'error') else: participants = DBSession.query(Participant).filter( or_( Participant.firstname.like('%'+search_string+'%'), Participant.lastname.like('%'+search_string+'%'), Participant.nickname.like('%'+search_string+'%'), Participant.member_no.like('%'+search_string+'%') )).all() participants_tmp = [] for participant in participants: participant_tmp = { 'id':participant.id, 'firstname':helpers.decodeString(participant.firstname), 'lastname':helpers.decodeString(participant.lastname), } participants_tmp.append(participant_tmp) return json.dumps(participants_tmp) return {}
def security_participant_view(self): _ = self.request.translate participant_id = self.request.matchdict["participant_id"] participant = DBSession.query(Participant).get(participant_id) if ( self.request.method == "POST" and self.request.POST.get("participant_new_status_id") != None and self.request.POST.get("participant_new_status_id").isdigit() ): participantStatus = ParticipantStatus() participantStatus.participant_id = participant.id participantStatus.status_id = int(self.request.POST.get("participant_new_status_id")) description = self.request.POST.get("participant_new_status_description") if description != None and description.strip() != "": participantStatus.description = description expected_next_change = self.request.POST.get("participant_new_status_expected_next_change") if expected_next_change != None and expected_next_change.strip() != "": participantStatus.expected_next_change = helpers.parseFinnishDateFromString( expected_next_change.strip() ) DBSession.add(participantStatus) DBSession.flush() participant.latest_status_key = int(self.request.POST.get("participant_new_status_id")) DBSession.add(participant) DBSession.flush() self.request.session.flash(_(u"Added new status for participant."), "success") return HTTPFound(location="/security/participant/view/" + str(participant.id) + "/") participant.getParticipantAddressData() participant.getParticipantPhoneData() participant.getParticipantLanguageData() participant.getParticipantPresenceData() participant.getParticipantNextOfKinData() participant.getParticipantMetaData() self.request.bread.append({"url": "/security/", "text": _("Security")}) self.request.bread.append({"url": "/security/participant/search/", "text": _("Search")}) self.request.bread.append( { "url": "/security/participant/view/" + participant_id + "/", "text": _("Participant") + " " + helpers.decodeString(participant.firstname) + " " + helpers.decodeString(participant.lastname), } ) return {"participant": participant}
def security_shifts_new(self): if self.request.redirect_forbidden: return HTTPFound(location="/forbidden/") elif userhelpers.checkUserPasswordChangeNeed(self.request): return HTTPFound(location="/settings/me/edit/") _ = self.request.translate shift = SecurityShift() if self.request.method == "POST": shift.starts = helpers.parseFinnishDateFromString(self.request.POST.get("starts").strip()) shift.ends = helpers.parseFinnishDateFromString(self.request.POST.get("ends").strip()) # shift.leader_id = helpers.decodeString(self.request.POST.get('leader_id').strip()) shift.notes = helpers.decodeString(self.request.POST.get("notes").strip()) if type(shift.starts) is datetime and type(shift.ends) is datetime and shift.starts < shift.ends: DBSession.add(shift) DBSession.flush() userAudit = UserAudit(self.request.user.id) userAudit.model = "SecurityShift" userAudit.model_id = shift.id userAudit.action = "Create" userAudit.revision = shift.metadata_revision DBSession.add(userAudit) DBSession.flush() self.request.session.flash(_(u"Shift created."), "success") return HTTPFound(location="/security/shifts/view/" + str(shift.id) + "/") else: self.request.session.flash(_(u"Error creating shift. Shift ends before it begins."), "error") self.request.bread.append({"url": "/security/", "text": _("Security")}) self.request.bread.append({"url": "/security/shifts/", "text": _("Shifts")}) self.request.bread.append({"url": "/security/shifts/new/", "text": _("Create")}) return {"shift": shift}
def settings_groups_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 tmp_group = { 'id':'', 'name':'', 'leader_id':'', 'privileges':'', } group_id = self.request.matchdict['group_id'] group = DBSession.query(Group).filter(Group.id==group_id).first() if group.id: if group.id == 1: return HTTPFound(location='/settings/groups/') # privilege_ids = [privilege.id for privilege in group.privileges] tmp_group = { 'id':group.id, 'name':group.name, 'leader_id':group.leader_id, 'privileges':group.privileges } if self.request.method == 'POST': tmp_group['name'] = self.request.POST.get('name').strip() if not self.checkIfGroupnameExists(tmp_group['name'], tmp_group['id']): group.name = tmp_group['name'] if security.has_permission("settings_users_modify_permissions", self.request.context, self.request): privileges_list = '' if len(self.request.POST.getall('privileges'))> 0: for privilege in DBSession.query(Privilege).filter(Privilege.id.in_(self.request.POST.getall('privileges'))).all(): privileges_list += '|'+privilege.name + '|' group.privileges = privileges_list DBSession.add(group) DBSession.flush() userAudit = UserAudit(self.request.user.id) userAudit.model = 'Group' userAudit.model_id = group.id userAudit.action = 'Update' userAudit.revision = group.metadata_revision DBSession.add(userAudit) DBSession.flush() self.request.session.flash(_(u"Group saved."), 'success') return HTTPFound(location='/settings/groups/view/'+str(group.id)) else: self.request.session.flash(_(u"Group with that name allready exists."), 'error') privileges = DBSession.query(Privilege).all() self.request.bread.append({'url':'/settings/', 'text':_('Settings')}) self.request.bread.append({'url':'/settings/groups/', 'text':_('Groups')}) self.request.bread.append({'url':'/settings/groups/edit/'+str(group.id)+'/', 'text':_('Edit') + ' ' + helpers.decodeString(group.name)}) return {'group':tmp_group, 'privileges':privileges}
def settings_groups_view(self): if self.request.redirect_forbidden: return HTTPFound(location='/forbidden/') elif userhelpers.checkUserPasswordChangeNeed(self.request): return HTTPFound(location='/settings/me/edit/') _ = self.request.translate group_id = self.request.matchdict['group_id'] group = DBSession.query(Group).filter(Group.id==group_id).first() if group.id: # privilege_ids = [privilege.id for privilege in group.privileges] tmp_group = { 'id':group.id, 'name':group.name, 'leader_id':group.leader_id, 'privileges':group.privileges } privileges = DBSession.query(Privilege).all() self.request.bread.append({'url':'/settings/', 'text':_('Settings')}) self.request.bread.append({'url':'/settings/groups/', 'text':_('Groups')}) self.request.bread.append({'url':'/settings/groups/view/'+str(group.id)+'/', 'text':_('View') + ' ' + helpers.decodeString(group.name)}) return {'group':tmp_group, 'privileges':privileges} else: return HTTPFound(location='/settings/groups/')