Esempio n. 1
0
    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
Esempio n. 2
0
 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
Esempio n. 3
0
 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
Esempio n. 4
0
def get_project_name(request, id):
    id = str(id)
    for project in get_projects(request):
        if project.id == id:
            return project.name
    return None
Esempio n. 5
0
def gen_projects(request):
    data = []
    for project in get_projects(request):
        data.append((project.id, project.name))
    return data
Esempio n. 6
0
    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