Example #1
0
def company_wizard_step_two(request):
    company_users = Profile.objects.filter(
        is_super_admin=False,
        company_id=request.user.profile.company_id).count()
    default_template = save_email_template(request)
    if request.user.profile.is_super_admin and company_users == 0:
        return_status = {
            'msg':
            None,
            'emails': [{
                'name': 'email_1',
                'class': '',
                'value': '',
                'style': ''
            }, {
                'name': 'email_2',
                'class': '',
                'value': '',
                'style': ''
            }, {
                'name': 'email_3',
                'class': '',
                'value': '',
                'style': ''
            }, {
                'name': 'email_4',
                'class': '',
                'value': '',
                'style': ''
            }, {
                'name': 'email_5',
                'class': '',
                'value': '',
                'style': ''
            }]
        }
        language = request.user.profile.company.language
        company_id = request.user.profile.company_id
        email_exits = False
        if request.method == "POST":
            for index, post_email in enumerate(return_status['emails']):
                request_email = request.POST.get(
                    return_status['emails'][index]['name'])
                print("request_email", request_email)
                if User.objects.filter(username=request_email).exists(
                ) or User.objects.filter(email=request_email).exists():
                    return_status['emails'][index][
                        'style'] = 'border-color: red;'
                    email_exits = True
                return_status['emails'][index]['value'] = request_email
            if not email_exits:
                for index, post_email in enumerate(return_status['emails']):
                    util = Utils()
                    if return_status['emails'][index]['value']:
                        activation_key = hashlib.sha256(
                            return_status['emails'][index]['value'].encode(
                                'utf-8')).hexdigest()[:30]
                        new_user = User.objects.create_user(
                            username=return_status['emails'][index]['value'],
                            email=return_status['emails'][index]['value'],
                            is_active=False)
                        new_user.save()
                        default_roles = [
                            'ROLE_MANAGE_ALL_CONTACT',
                            'ROLE_MANAGE_ALL_CALENDAR',
                            'ROLE_MANAGE_ALL_OPPORTUNITY',
                            'ROLE_MANAGE_ALL_QUOTATION',
                            'ROLE_MANAGE_ALL_INVOICE', 'ROLE_MANAGE_ALL_SALES',
                            'ROLE_ACCESS_RIGHT', 'ROLE_ACCESS_SETTING'
                        ]
                        new_user.profile = Profile(
                            activation_key=activation_key,
                            color=util.get_profile_color(new_user.id),
                            company_id=company_id,
                            user_id=new_user.id,
                            language=language,
                            roles=default_roles)
                        new_user.profile.default_sales_channel = get_company_default_channel(
                            company_id)
                        new_user.profile.save()
                        util.send_activation(new_user, new_user.profile, True)
                return redirect('/welcome/')
        return render(request, 'web/auth/company_wizard_step_two.html',
                      {'return_status': return_status})
    else:
        return redirect('/dashboard/')
Example #2
0
def register(request):
    util = Utils()
    roles = settings.DEFAULT_ROLES
    return_status = {
        'msg': '',
        'name': '',
        'email': '',
        'password': '',
        'compnay_name': '',
        'phone': ''
    }
    if request.method == "POST":
        first_name = request.POST.get("first_name")
        last_name = request.POST.get("last_name")
        name = request.POST.get("email")
        email = request.POST.get("email")
        password = request.POST.get("password")
        compnay_name = request.POST.get("compnay_name")
        phone = request.POST.get("phone")

        return_status['first_name'] = first_name
        return_status['last_name'] = last_name
        return_status['name'] = name
        return_status['email'] = email
        return_status['password'] = password
        return_status['compnay_name'] = compnay_name
        return_status['phone'] = phone

        if not User.objects.filter(username=name).exists():
            if not User.objects.filter(email=email).exists():
                activation_key = hashlib.sha256(
                    email.encode('utf-8')).hexdigest()[:30]
                user = User.objects.create_user(first_name=first_name,
                                                last_name=last_name,
                                                username=name,
                                                email=email,
                                                password=password,
                                                last_login=timezone.now())
                user.last_login = timezone.now()
                if user:
                    company = Company(company=compnay_name,
                                      email=email,
                                      user=user,
                                      phone=phone)
                    company.save()
                    profile = Profile(company=company,
                                      is_super_admin=True,
                                      is_admin=True,
                                      color=settings.ADMIN_COLOR,
                                      phone=phone,
                                      activation_key=activation_key,
                                      user=user,
                                      roles=roles)
                    profile.save()
                    insert_default_tags(company, user.id)
                    status = save_default_fields(company, user.id, 'English')
                    initalize_modules(company)
                    util.send_activation(user, profile)
                    if (status):
                        user = authenticate(username=name, password=password)
                        login(request, user)
                        sales_channel = add_default_sales_channel_on_signup(
                            request)
                        default_tax = add_default_product_tax(request)
                        if sales_channel:
                            try:
                                profile = Profile.objects.get(user=user)
                                profile.default_sales_channel = sales_channel
                                profile.save()
                            except Profile.DoesNotExist:
                                print("Profile.DoesNotExist")

                        return HttpResponseRedirect('/company-wizard/')
                    else:
                        return HttpResponseRedirect('/register/')
                else:
                    return_status['msg'] = 'User could not saved!! '
                    return render(request, 'web/auth/register.html',
                                  {'return_status': return_status})
            else:
                return_status['msg'] = 'Email already exits.'
                return render(request, 'web/auth/register.html',
                              {'return_status': return_status})
        else:
            return_status['msg'] = 'Username  already exits.'
            return render(request, 'web/auth/register.html',
                          {'return_status': return_status})
    else:
        return render(request, 'web/auth/register.html',
                      {'return_status': return_status})