def update_department(request): """updates an Department """ logger.debug('***update department method starts ***') logged_in_user = get_logged_in_user(request) # get params came_from = request.params.get('came_from', '/') department_id = request.matchdict.get('id', -1) department = Department.query.filter_by(id=department_id).first() name = request.params.get('name') logger.debug('department : %s' % department) logger.debug('department new name : %s' % name) if department and name: description = request.params.get('description') lead_id = request.params.get('lead_id', -1) lead = User.query.filter_by(id=lead_id).first() # Tags tags = get_tags(request) logger.debug('department new description : %s' % description) logger.debug('department new lead : %s' % lead) logger.debug('department new tags : %s' % tags) # update the department department.name = name department.description = description department.lead = lead department.tags = tags department.updated_by = logged_in_user department.date_updated = datetime.datetime.now() DBSession.add(department) logger.debug('department is updated successfully') request.session.flash( 'success:Department <strong>%s</strong> is updated successfully' % name ) logger.debug('***update department method ends ***') else: logger.debug('not all parameters are in request.params') log_param(request, 'department_id') log_param(request, 'name') HTTPServerError() return Response('Successfully updated department: %s' % department_id)
def assign_reference(request): """assigns the link to the given entity as a new reference """ link_ids = get_multi_integer(request, 'link_ids[]') removed_link_ids = get_multi_integer(request, 'removed_link_ids[]') entity_id = request.params.get('entity_id', -1) entity = Entity.query.filter_by(id=entity_id).first() links = Link.query.filter(Link.id.in_(link_ids)).all() removed_links = Link.query.filter(Link.id.in_(removed_link_ids)).all() # Tags tags = get_tags(request) logged_in_user = get_logged_in_user(request) logger.debug('link_ids : %s' % link_ids) logger.debug('links : %s' % links) logger.debug('entity_id : %s' % entity_id) logger.debug('entity : %s' % entity) logger.debug('tags : %s' % tags) logger.debug('removed_links : %s' % removed_links) # remove all the removed links for removed_link in removed_links: # no need to search for any linked tasks here DBSession.delete(removed_link) if entity and links: entity.references.extend(links) # assign all the tags to the links for link in links: link.tags.extend(tags) # generate thumbnail thumbnail = generate_thumbnail(link) link.thumbnail = thumbnail thumbnail.created_by = logged_in_user DBSession.add(thumbnail) DBSession.add(entity) DBSession.add_all(links) # return new links as json data # in response text return [ { 'id': link.id, 'full_path': link.full_path, 'original_filename': link.original_filename, 'thumbnail': link.thumbnail.full_path if link.thumbnail else link.full_path, 'tags': [tag.name for tag in link.tags] } for link in links ]
def create_department(request): """creates a new Department """ logger.debug('***create department method starts ***') logged_in_user = get_logged_in_user(request) # get params came_from = request.params.get('came_from', '/') name = request.params.get('name') logger.debug('new department name : %s' % name) if name: description = request.params.get('description') lead_id = request.params.get('lead_id', -1) lead = User.query.filter_by(id=lead_id).first() # Tags tags = get_tags(request) logger.debug('new department description : %s' % description) logger.debug('new department lead : %s' % lead) logger.debug('new department tags : %s' % tags) try: new_department = Department( name=name, description=description, lead=lead, created_by=logged_in_user, tags=tags ) DBSession.add(new_department) logger.debug('added new department successfully') request.session.flash( 'success:Department <strong>%s</strong> is created successfully' % name ) logger.debug('***create department method ends ***') except BaseException as e: request.session.flash('error:' + e.message) HTTPFound(location=came_from) else: logger.debug('not all parameters are in request.params') log_param(request, 'name') response = Response( 'There are missing parameters: ' 'name: %s' % name, 500 ) transaction.abort() return response response = Response('successfully updated %s department!' % name) return response
def create_user(request): """called when adding a User """ logger.debug('***create user method starts ***') logged_in_user = get_logged_in_user(request) # get params came_from = request.params.get('came_from', '/') name = request.params.get('name', None) login = request.params.get('login', None) email = request.params.get('email', None) password = request.params.get('password', None) logger.debug('came_from : %s' % came_from) logger.debug('new user name : %s' % name) logger.debug('new user login : %s' % login) logger.debug('new user email : %s' % email) logger.debug('new user password : %s' % password) # create and add a new user if name and login and email and password: department_id = request.params.get('department_id', None) departments = [] if department_id: department = Department.query.filter_by(id=department_id).first() departments = [department] else: # Departments if 'department_ids' in request.params: dep_ids = get_multi_integer(request, 'department_ids') departments = Department.query.filter( Department.id.in_(dep_ids)).all() # Groups groups = [] if 'group_ids' in request.params: grp_ids = get_multi_integer(request, 'group_ids') groups = Group.query.filter( Group.id.in_(grp_ids)).all() # Tags tags = get_tags(request) logger.debug('new user departments : %s' % departments) logger.debug('new user groups : %s' % groups) logger.debug('new user tags : %s' % tags) try: new_user = User( name=request.params['name'], login=request.params['login'], email=request.params['email'], password=request.params['password'], created_by=logged_in_user, departments=departments, groups=groups, tags=tags ) DBSession.add(new_user) logger.debug('added new user successfully') request.session.flash( 'success:User <strong>%s</strong> is created successfully' % name ) logger.debug('***create user method ends ***') response = Response('User created successfully') response.status_int = 200 return response except BaseException as e: # request.session.flash('error:' + e.message) # HTTPFound(location=came_from) transaction.abort() return Response('BaseException: %s'%e.message, 500) else: logger.debug('not all parameters are in request.params') log_param(request, 'name') log_param(request, 'login') log_param(request, 'email') log_param(request, 'password') response = Response('There are missing parameters: ') response.status_int = 500 return response response = Response('User created successfully') response.status_int = 200 return response
def update_user(request): """called when updating a User """ logger.debug('***update user method starts ***') logged_in_user = get_logged_in_user(request) # get params came_from = request.params.get('came_from', '/') user_id = request.matchdict.get('id') user = User.query.filter(User.id == user_id).first() name = request.params.get('name') login = request.params.get('login') email = request.params.get('email') password = request.params.get('password') logger.debug('user : %s' % user) logger.debug('user new name : %s' % name) logger.debug('user new login : %s' % login) logger.debug('user new email : %s' % email) logger.debug('user new password : %s' % password) if user and name and login and email and password: # departments = [] # # # Departments # if 'department_ids' in request.params: # dep_ids = get_multi_integer(request, 'department_ids') # departments = Department.query \ # .filter(Department.id.in_(dep_ids)).all() # # # Groups # groups = [] # if 'group_ids' in request.params: # grp_ids = get_multi_integer(request, 'group_ids') # groups = Group.query \ # .filter(Group.id.in_(grp_ids)).all() # Tags tags = get_tags(request) user.name = name user.login = login user.email = email user.updated_by = logged_in_user user.date_updated = datetime.datetime.now() # user.departments = departments # user.groups = groups # user.tags = tags if password != 'DONTCHANGE': user.password = password DBSession.add(user) logger.debug('user is updated successfully') request.session.flash( 'success:User <strong>%s</strong> is updated successfully' % name ) logger.debug('***update user method ends ***') else: logger.debug('not all parameters are in request.params') log_param(request, 'user_id') log_param(request, 'name') log_param(request, 'login') log_param(request, 'email') log_param(request, 'password') HTTPServerError() return HTTPFound( location=came_from )