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 update_group(request): """updates the group with data from request """ logger.debug('***update group method starts ***') logged_in_user = get_logged_in_user(request) # get parameters post_multi_dict = request.POST came_from = request.params.get('came_from', '/') group_id = int(post_multi_dict['group_id']) group = Group.query.filter_by(id=group_id).first() name = post_multi_dict['name'] if group and name: description = post_multi_dict['description'] # remove name and description to leave only permission in the dictionary post_multi_dict.pop('name') post_multi_dict.pop('description') permissions = get_permissions_from_multi_dict(post_multi_dict) # update the group group.name = name group.description = description group.permissions = permissions group.updated_by = logged_in_user group.date_updated = datetime.datetime.now() DBSession.add(group) logger.debug('group is updated successfully') request.session.flash( 'success:Group <strong>%s</strong> is updated successfully' % name ) logger.debug('***update group method ends ***') else: logger.debug('not all parameters are in request.params') log_param(request, 'group_id') log_param(request, 'name') response = Response( 'There are missing parameters: ' 'group_id: %s, name: %s' % (group_id, name), 500 ) transaction.abort() return response response = Response('successfully updated %s group!' % name) return response
def update_good(request): """updates the good with data from request """ logger.debug('***update good method starts ***') logged_in_user = get_logged_in_user(request) utc_now = local_to_utc(datetime.datetime.now()) good_id = request.params.get('id') good = Good.query.filter_by(id=good_id).first() if not good: transaction.abort() return Response('There is no good with id: %s' % good_id, 500) name = request.params.get('name', None) msrp = request.params.get('msrp', None) unit = request.params.get('unit', None) cost = request.params.get('cost', None) price_list_name = request.params.get('price_list_name', None) logger.debug('name : %s' % name) logger.debug('msrp : %s' % msrp) logger.debug('unit : %s' % unit) logger.debug('cost : %s' % cost) if name and msrp and unit and cost: price_list = query_price_list(price_list_name) # update the group assert isinstance(good, Good) good.name = name good.msrp = int(msrp) good.unit = unit good.cost = int(cost) good.price_lists = [price_list] good.updated_by = logged_in_user good.date_updated = utc_now DBSession.add(good) logger.debug('good is updated successfully') request.session.flash( 'success:Good <strong>%s</strong> is updated successfully' % name) logger.debug('***update group method ends ***') else: logger.debug('not all parameters are in request.params') log_param(request, 'group_id') log_param(request, 'name') response = Response( 'There are missing parameters: ' 'good_id: %s, name: %s' % (good_id, name), 500) transaction.abort() return response response = Response('successfully updated %s good!' % name) return response
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_group(request): """creates a new Group """ logger.debug('***create group method starts ***') logged_in_user = get_logged_in_user(request) # get params post_multi_dict = request.POST came_from = request.params.get('came_from', '/') name = post_multi_dict['name'] logger.debug('new group name : %s' % name) if name: description = post_multi_dict['description'] logger.debug('new group description : %s' % description) # remove name and description to leave only permissions in the dictionary post_multi_dict.pop('name') post_multi_dict.pop('description') permissions = get_permissions_from_multi_dict(post_multi_dict) logger.debug('new group permissions : %s' % permissions) try: # create the new group new_group = Group( name=name ) new_group.description = description new_group.created_by = logged_in_user new_group.permissions = permissions DBSession.add(new_group) logger.debug('added new group successfully') request.session.flash( 'success:Group <strong>%s</strong> is ' 'created successfully' % name ) logger.debug('***create group 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 group!' % 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 )