def get_initial(self): data = get_billing_plan_mapping(self.request, self.kwargs['id']) projects = {} for project in get_projects(self.request): projects[str(project.id)] = project plans = {} for plan in get_plans(self.request): plans[str(plan['id'])] = plan # insert required data project = projects.get(str(data['user'])) data['user_name'] = project.name if project else '!ERR: ' + data['user'] plan = plans.get(str(data['plan_id'])) if plan: data['plan_name'] = plan['name'] data['service_type'] = plan['service_type'] else: data['plan_name'] = '!ERR: plan: ' + str(plan_map['id']) data['service_type'] = None disc_map = data.get('discount_mapping', None) if disc_map: data['discount'] = disc_map['discount_id'] data['apply_type'] = disc_map['apply_type'] data['apply_interval'] = disc_map['apply_interval'] data['apply_amt'] = disc_map['apply_amt'] return data
def get_data(self): data = get_discount_mappings(self.request) projects = dict([(str(p.id), p) for p in get_projects(self.request)]) disc_types = dict([(str(dt['id']), dt) for dt in get_discount_types(self.request)]) discounts = dict([(str(d['id']), d) for d in get_discounts(self.request)]) plans = dict([(str(p['id']), p) for p in get_plans(self.request)]) plan_mappings = dict([(str(pm['id']), pm) for pm in get_billing_plan_mappings(self.request)]) for item in data: project = projects.get(str(item['user'])) item['user_name'] = project.name if project else '!ERR: ' + item['user'] if item['map_object'] == 'user_plan': plan_map = plan_mappings.get(item['ref_id']) if plan_map: plan = plans.get(str(plan_map['plan_id'])) item['plan_name'] = plan['name'] if plan else '!ERR: plan: ' + str(plan_map['id']) else: '!ERR: plan mapping: ' + item['ref_id'] disc = discounts.get(str(item['discount_id'])) disc_type = disc_types.get(str(item['discount_type_id'])) item['discount_type'] = disc_type['name'] if disc_type else '!ERR: ' + str(item['discount_type_id']) item['discount_amt'] = str(disc['amt']) + '%' if disc else '!ERR: ' + str(item['discount_id']) item['apply_type'] = apply_intervals.get(item['apply_type']) or '!ERR: ' + item['apply_type'] if item['apply_amt']: item['discount_amt'] = item['apply_amt'] return data
def get_initial(self): data = get_discount_mapping(self.request, self.kwargs['id']) projects = {} for project in get_projects(self.request): projects[str(project.id)] = project plans = {} for plan in get_plans(self.request): plans[str(plan['id'])] = plan plan_mappings = {} for plan_map in get_billing_plan_mappings(self.request): plan_mappings[str(plan_map['id'])] = plan_map # insert required data project = projects.get(str(data['user'])) data['user_id'] = data['user'] data['user_name'] = project.name if project else '!ERR: ' + data['user'] if data['map_object'] == 'user_plan': plan_map = plan_mappings.get(data['ref_id']) if plan_map: data['plan_mapping_id'] = plan_map['id'] plan = plans.get(str(plan_map['plan_id'])) data['plan_name'] = plan['name'] if plan else '!ERR: plan: ' + str(plan_map['id']) else: '!ERR: plan mapping: ' + data['ref_id'] return data
def get_project_name(request, id): id = str(id) for project in get_projects(request): if project.id == id: return project.name return None
def gen_projects(request): data = [] for project in get_projects(request): data.append((project.id, project.name)) return data
def clean(self): cleaned_data = super(CreateAccountGenericAction, self).clean() if str(cleaned_data.get('project_mapping')) == '0': # validate new project fields msg_field_is_required = 'This field is required.' cleaned_data['project_name'] = (cleaned_data.get('project_name') or '').strip() project_name = cleaned_data['project_name'] if project_name == '': self.add_error('project_name', msg_field_is_required) else: # check if specified project is already exists #if len([p for p in keystone.tenant_list(self.request)[0] if p.name == project_name]) > 0: if len([ p for p in get_projects(self.request) if p.name == project_name ]) > 0: self.add_error( 'project_name', 'Project `%s` already exists.' % project_name) cleaned_data['username'] = (cleaned_data.get('username') or cleaned_data.get('project_name') or '').strip() username = cleaned_data['username'] if username != '': # check if specified user is already exists #if len([u for u in keystone.user_list(self.request) if u.name == username]) > 0: ks = get_admin_ksclient() if len( [u for u in get_users(self.request) if u.name == username ]) > 0: self.add_error('username', 'User `%s` already exists.' % username) password = cleaned_data.get('password') if not password: self.add_error('password', msg_field_is_required) # else: # # check password strength # if not ( # any(c.isupper() for c in password) and \ # any(c.islower() for c in password) and \ # any(c.isdigit() for c in password) and \ # len(password) >= 8 # ): # self.add_error('password', 'Password is too weak: %s.' % password_requirement_str) confirm = cleaned_data.get('confirm_password') if not confirm: self.add_error('confirm_password', msg_field_is_required) if password and confirm and password != confirm: self.add_error('confirm_password', 'Confirmation does not match password.') return cleaned_data