Esempio n. 1
0
class UserTestCase(CleanupTestCaseMixin, APITestCase):
    def init_data(self, access_as='apikey', headers=True, create_user=True):
        self.instance = G(Instance, name='testinstance')
        set_current_instance(self.instance)

        if create_user:
            self.user = User(username='******')
            self.user.set_password('test')
            self.user.save()

        if access_as == 'apikey':
            self.apikey = self.instance.create_apikey(allow_user_create=True)
            self.credentials = {'username': '******', 'password': '******'}

            if headers:
                self.client.defaults['HTTP_X_API_KEY'] = self.apikey.key
                if create_user or getattr(self, 'user', None):
                    self.client.defaults['HTTP_X_USER_KEY'] = self.user.key

        else:
            self.admin = G(Admin, email='*****@*****.**', is_active=True)
            self.admin.add_to_instance(self.instance)

            if headers:
                self.client.defaults['HTTP_X_API_KEY'] = self.admin.key

    def _get_user_profile(self, user):
        user_profile_klass = Klass.get_user_profile()
        return DataObject.objects.filter(_klass=user_profile_klass,
                                         owner=user).get()
Esempio n. 2
0
class TestProfileImageResize(TestCase):
    def setUp(self):
        self.user = User(
            email="*****@*****.**",
            password="******"
        )
        self.user.save()
        self.profile = Profile(
            prefix="Mr",
            middle="Jim",
            suffix="Jr",
            first_name="Ben",
            last_name="Gilbertson",
            nick_name="Bengi",
            headline="Mr Bengil, Master of the Universe",
            dob=datetime.date(200, 1, 1),
            user=self.user,
            profile_image=create_image_file(),
            activation_key="ABCDEFGHIJK"
        )
        self.profile.save()

    # @unittest.skip("Takes too long, eats the CPU")
    def test_profile_valid(self):
        self.assertIsInstance(self.profile, Profile)
        self.assertTrue(self.profile.profile_image is not None)
        file_regex = re.compile(r'uploads/profile_img/test.*\.png')
        self.assertRegexpMatches(self.profile.profile_image.name, file_regex)
        # self.assertEqual(self.profile.profile_image.name, 'uploads/profile_img/test_*.png')

    # @unittest.skip("Takes Too Long, eats CPU")
    def test_profile_img_resize(self):
        path = settings.BASE_DIR + str(self.profile.profile_image.url)
        new_path = resize_image(path, 50, append_str="thumb")
        self.assertRegexpMatches(new_path, re.compile(r'.*thumb\.png'))
Esempio n. 3
0
    def post(self, request, *args, **kwargs):
        email_data = self.request.data
        email_address = email_data.__getitem__("email")
        length = 5
        numbers = '0123456789'
        validation_code = ''.join(
            random.choice(numbers) for _ in range(length))
        subject = 'Welcome to Motion'
        message = 'Here is your validation code ' + validation_code
        recipient = email_address
        send_mail(subject,
                  message,
                  EMAIL_HOST_USER, [recipient],
                  fail_silently=False)

        try:
            new_user = User(email=email_address,
                            username=email_address,
                            is_active=False)
            new_user.save()
            registration_profile = RegistrationProfile(user=new_user,
                                                       code=validation_code)
            registration_profile.save()
            return Response(status=status.HTTP_200_OK)
        except IntegrityError:
            return Response(data="This email is already taken.", status=400)
Esempio n. 4
0
 def save_user(validated_data):
     user = User(email=validated_data['email'])
     user.set_password(validated_data['password'])
     user.first_name = validated_data.get('first_name', None)
     user.last_name = validated_data.get('last_name', None)
     user.is_active = True
     user.save()
Esempio n. 5
0
def addUsers(request):
    if request.method == "POST":
        statement = User(user=request.POST.get('user'), password=request.POST.get('password'), email=request.POST.get('email'))
        statement.save()
        sta = 'user: '******'user') + ' and password: '******'password') + ' Has sido Guardados'
        title = 'Registro de usuario nuevo'
        body = 'se ha Creado un nuevo usuario para usted, llamado: '+request.POST.get('user')+' y su password es: '+request.POST.get('password') + ', muchas gracias, atentamente BrayanDev'
        email_send = request.POST.get('email')
        #settings.DEFAULT_FROM_EMAIL = '*****@*****.**'
        #email_send_now = settings.DEFAULT_FROM_EMAIL
        #email = EmailMessage(title, body, to=[email_send])
        #email.send()
        #context = {'guardado':'Guardado'}

        email = request.POST.get('email', None)
        subject = 'Registro'
        message = 'Bienvenido, hemos creado tu cuenta.'
        context = {'body':body, 'email': email, 'subject': subject, 'message': message, 'user':request.POST.get('user'), 'password':request.POST.get('password')}

        html_message = render_to_string('template_email/email.html', {'context': context})
        plain_message = strip_tags(html_message)

        send_mail(title, plain_message, settings.EMAIL_HOST_USER,
                  [email_send], html_message=html_message, fail_silently=False)

        return render(request, 'users/add_users.html', {'sta':body})
    return render(request, 'users/add_users.html')
Esempio n. 6
0
class DappsCRUDIntegrationTests(WebTest):
    def setUp(self):
        self.user = User()
        self.user.save()

        self.constructor = Constructor.create(price=0)
        self.constructor.save()

        self.auth_header = {
            'X_ACCESSTOKEN':
            UsersService().generate_token(self.user, 'ethereum')
        }

    def test_update(self):
        dapp = Dapp.create(constructor=self.constructor, user=self.user)
        dapp.save()

        fields = {
            'address': '0x00',
            'network_id': '2',
            'has_public_access': True,
            'title': 'new title'
        }
        for field, val in fields.items():
            resp = self.app.post_json('/api/dapps/{}/update'.format(dapp.slug),
                                      params={field: val},
                                      headers=self.auth_header)
            assert resp.status_code == 200
            assert getattr(
                dapp, field) != val, "field {} mustn't be equal {}".format(
                    field, val)
            dapp.refresh_from_db()
            assert getattr(dapp,
                           field) == val, "field {} must be equal {}".format(
                               field, val)

    def test_add_to_dashboard(self):
        user2 = User()
        user2.username = '******'
        user2.save()

        dapp = Dapp.create(constructor=self.constructor, user=user2)
        dapp.has_public_access = True
        dapp.title = 'titl'
        dapp.save()

        assert Dapp.objects.count() == 1

        resp = self.app.post_json('/api/dapps/{}/add-to-dashboard'.format(
            dapp.slug),
                                  headers=self.auth_header)
        assert resp.status_code == 200
        assert 'ok' in resp.json

        assert Dapp.objects.count() == 2
        dapps = Dapp.objects.order_by('created_at').all()
        assert dapps[0].pk == dapp.pk
        assert dapps[1].title == dapp.title
        assert dapps[1].user_id == self.user.pk
        assert dapps[1].created_at != dapps[0].created_at
Esempio n. 7
0
 def save_user(validated_data):
     user = User(email=validated_data['email'])
     user.set_password(validated_data['password'])
     user.is_staff = False
     user.is_active = True
     user.email_confirmation_token = generate_unique_key(user.email)
     user.save()
Esempio n. 8
0
 def save_user(validated_data):
     invitation = InvitationToUserAndWarehouseAdmin.objects.filter(email=validated_data['email']).first()
     if invitation is not None:
         if invitation.accepted:
             user = User(email=validated_data['email'])
             user.set_password(validated_data['password'])
             user.first_name = invitation.first_name
             user.last_name = invitation.last_name
             user.is_staff = False
             user.is_active = True
             user.role = invitation.role
             user.email_confirmation_token = generate_unique_key(user.email)
             user.save()
             if user.role == 'general':
                 company_general_user = CompanyUser(user=user, company=invitation.company)
                 company_general_user.save()
             elif user.role == 'warehouse':
                 warehouse_admin = CompanyWarehouseAdmins(user=user, company=invitation.company)
                 warehouse_admin.save()
             msg = "%s %s (%s) accepted your invitation." % (
                 invitation.first_name, invitation.first_name, invitation.role)
             from_invited_user = User.objects.filter(pk=invitation.user).first()
             print(from_invited_user)
             if from_invited_user.role == 'warehouse':
                 notif = WarehouseAdminNotifications(user=from_invited_user.id, text=msg, seen=False)
                 notif.save()
             notification = CompanyAdminsNotification(company=invitation.company, text=msg)
             notification.save()
             InvitationToUserAndWarehouseAdmin.objects.filter(email=validated_data['email']).delete()
         else:
             raise serializers.ValidationError({'detail': 'Account not accepted.'})
     else:
         raise serializers.ValidationError({'detail': 'Invalid email'})
Esempio n. 9
0
def new_user(request):
    if request.is_ajax():
        data = request.POST['data']
        data = json.loads(data)
        data.pop("id", None)
        data['is_active'] = True
        data['is_superuser'] = False
        data['password'] = '******'
        try:
            user = User(**data)
            user.validate_unique()
            user.save()
            context = {
                'results': user.as_json(),
                'totalProperty': 0,
                'success': True
            }
        except ValidationError as e:
            non_field_errors = e.messages
            context = {
                'msg': non_field_errors,
                'results': [],
                'totalProperty': 0,
                'success': False
            }

        context = json.dumps(context)
        return HttpResponse(context, content_type='application/json')
    return Http404
Esempio n. 10
0
    def __create_contract_ui(self):
        user = User()
        user.save()

        ui_testnet = ContractUI(
            name='erc201',
            slug='erc201',
            blockchain='ethereum',
            address='0x0123456789012345678901234567890123456789',
            network_id='42',
            description='qqqqqqq',
            functions={'transfer': {
                'title': 'arg1'
            }},
            abi=[],
            user=user)
        ui_testnet.full_clean(exclude=['abi', 'created_at', 'updated_at'])
        ui_testnet.save()

        ui = ContractUI(name='erc20',
                        slug='erc20',
                        blockchain='ethereum',
                        address='0x0123456789012345678901234567890123456789',
                        network_id='1',
                        description='qqqqqqq',
                        functions={'transfer': {
                            'title': 'arg1'
                        }},
                        abi=[],
                        user=user)
        ui.full_clean(exclude=['abi', 'created_at', 'updated_at'])
        ui.save()
        return ui
Esempio n. 11
0
def post():
    form, error = JsonParser('name', 'type', 'zone', 'db_host', 'db_user', 'db_password','db_port',
                             Argument('desc', nullable=True, required=False)).parse()
    if error is None:
        host = User(**form)
        host.save()
        return json_response(host)
    return json_response(message=error)
Esempio n. 12
0
 def create(self, validated_data: dict) -> User:
     validated_data['is_enabled'] = False
     validated_data['is_admin'] = False
     user = User(**validated_data)
     user.set_password(validated_data['password'])
     user.save()
     self.send_confirmation_email(user, validated_data['password'])
     return user
Esempio n. 13
0
 def create(self, validated_data):
     user = User(
         username=validated_data['username'],
         name=validated_data['name'],
     )
     user.set_password(validated_data['password'])
     user.save()
     return user
 def create(self, validated_data):
     password = validated_data.pop('password') if validated_data.get(
         'password') else None
     user = User(**validated_data)
     if password and password != '':
         user.set_password(password)
     user.save()
     return user
Esempio n. 15
0
class RequestsCRUDIntegrationTests(WebTest):
    def setUp(self):
        self.constructor = Constructor.create(price=0)
        self.constructor.save()
        self.dapp = Dapp.create(constructor=self.constructor)
        self.dapp.save()

        self.user = User()
        self.user.save()

        self.auth_header = {
            'X_ACCESSTOKEN':
            UsersService().generate_token(self.user, 'ethereum')
        }

    def test_get_empty(self):
        resp = self.app.get('/api/dapps/{}/requests'.format(self.dapp.slug))
        assert resp.json == []

    def test_save_error(self):
        resp = self.app.post_json('/api/dapps/{}/requests'.format(
            self.dapp.slug),
                                  params={},
                                  expect_errors=True,
                                  headers=self.auth_header)
        assert resp.status_code == 400

    def test_save(self):
        resp = self.app.post_json('/api/dapps/{}/requests'.format(
            self.dapp.slug),
                                  params={
                                      'execution_datetime':
                                      '2018-08-01T22:00:00+03:00',
                                      'initiator_address':
                                      '0xffee00',
                                      'function_name':
                                      'call_this',
                                      'function_title':
                                      'Call this',
                                      'function_description':
                                      'Call this please',
                                      'function_arguments': [{
                                          "title": "arg1",
                                          'description': 'descr',
                                          'value': 'val'
                                      }],
                                      'result':
                                      55,
                                      'is_success':
                                      True,
                                  },
                                  headers=self.auth_header,
                                  expect_errors=True)
        assert resp.status_code == 201

        resp = self.app.get('/api/dapps/{}/requests'.format(self.dapp.slug),
                            headers=self.auth_header)
        assert len(resp.json) == 1
Esempio n. 16
0
    def post(self, request):
        """
        对注册页面发送过来的form表单数据进行处理
        :return:
        """
        # 获取post请求参数
        username = request.POST.get('username')
        password = request.POST.get('password')
        password2 = request.POST.get('password2')
        uphone = request.POST.get('mobile')
        code = request.POST.get('code')
        email = request.POST.get('email')
        allow = request.POST.get('allow')  # 用户协议,勾选后得到:on
        print('手机 验证码', uphone, code, request.session.get('message_code'))
        # todo:检验参数合法性
        # 判断参数不能为空
        if not all([username, password, password2, email, uphone, code]):
            return render(request, 'register.html', {'errmsg': "注册信息不能为空"})
        # 判断两次输入的密码是否一致
        if password != password2:
            return render(request, 'register.html', {'errmsg': "两次密码不一致"})
        # 判断邮箱合法
        if not re.match('^[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$',
                        email):
            return render(request, 'register.html', {'errmsg': "邮箱不合法"})
        # 判断是否勾选用户协议
        if allow != 'on':
            return render(request, 'register.html', {'errmsg': "请勾选用户协议"})
        # 判断手机输入是否正确
        if not re.match('^1[345678]\d{9}$', uphone):
            return render(request, 'register.html', {'errmsg': "手机输入不合法"})
        # 判断验证码是否正确
        if code != request.session.get('message_code'):
            return render(request, 'register.html', {'errmsg': "验证码校验错误"})
        # 处理业务:保存用户到数据表中
        # django提供的方法,会对密码进行加密
        user = User()
        try:
            user = User.objects.create_user(username,
                                            email,
                                            password,
                                            uphone=uphone)  # type: User
            # 修改用户状态为未激活
            user.is_active = False
            user.save()
        except IntegrityError:
            # 判断用户是否存在
            return render(request, 'register.html', {'errmsg': "用户名已存在"})

        # todo:发送激活邮件
        token = user.generate_active_token()
        # 同步发送:会阻塞
        # RegisterView.send_active_email(username, email, token)
        # 使用celery异步发送:不会阻塞
        # 会保存方法名
        send_active_email.delay(username, email, token)

        return HttpResponse("注册成功!")
Esempio n. 17
0
    def handle(self, *args, **options):
        with transaction.atomic():
            sponsor = User.objects.first()
            sponsor.status = 'active'
            sponsor.wallet = '3KRGxJLyFH7mLJG3yvwymADnDoDFzfJ73D'
            sponsor.save()

            plan = Plans.objects.first()
            expiry_date = datetime.now() + timedelta(
                days=settings.PAGSIM_EXPIRY_DAYS)

            c = Charges()
            c.amount = plan.down
            c.expiry_date = expiry_date
            c.description = "{} PLAN PAYMENT BY {}".format(
                plan.name, sponsor.username)
            c.identifier = uuid.uuid4().hex
            c.return_url = 'http://*****:*****@example.com'.format(i)
                user.status = 'active'
                user.save()

                c = Charges()
                c.amount = plan.down
                c.expiry_date = expiry_date
                c.description = "{} PLAN PAYMENT BY {}".format(
                    plan.name, user.username)
                c.identifier = uuid.uuid4().hex
                c.return_url = 'http://localhost:8000{}'.format(
                    reverse('financial-payment-received'))
                c.plan = plan
                c.user = user
                c.request = json.dumps([1, 2, 3])
                c.response = json.dumps([1, 2, 3])
                c.wallet = '3KRGxJLyFH7mLJG3yvwymADnDoDFzfJ73D'
                c.transaction_status = 1
                c.status = 1
                c.save()

                print("Creating user Demo {}".format(i))
Esempio n. 18
0
 def test_create_error(self):
     new_user = User(email='*****@*****.**', password='******')
     new_user.save()
     biz_card = BusinessCard(user_id=new_user)
     biz_card.save()
     with self.assertRaises(ValueError):
         new_contact = Contacts(businesscard_id=biz_card,
                                user_id=new_user.id)
         new_contact.save()
Esempio n. 19
0
 def setUpTestData(cls):
     user = User(username='******', password='******')
     user.save()
     for i in range(20):
         question = Question(title='title{0}'.format(i),
                             content='content{0}'.format(i),
                             create_by=user,
                             vote_count=20 - i)
         question.save()
Esempio n. 20
0
 def create(self, validated_data):
     """
     This method is used to create a new user instance. In this case, is 
     overwritten in order to edit a field. 
     
     Default: Model.objects.create(**validated_data).
     """
     user = User(**validated_data)
     user.set_password(validated_data['password'])
     user.save()
     return user
Esempio n. 21
0
class UserModelTest(TestCase):

    def setUp(self):
        self.test_user = User(email='*****@*****.**', password=PASSWORD)
        self.test_user.save()

    def test_user_to_string_email(self):
        self.assertEquals(str(self.test_user), '*****@*****.**')

    def tearDown(self):
        self.test_user.delete()
Esempio n. 22
0
def set_new_social_user_default_group(sender, instance: User, **kwargs):
    if not kwargs.get('created', False):
        return
    if instance.origin != User.USER_ORIGIN_SOCIAL:
        return

    group_name = DEFAULT_USER_GROUP.val
    if not group_name:
        return
    group = Group.objects.get(name=group_name)
    instance.groups.add(group)
    instance.save()
Esempio n. 23
0
class TestContactMedia(TestCase):

    def setUp(self):
        self.user = User(
            email="*****@*****.**",
            password="******"
        )
        self.user.save()
        self.biz_card = BusinessCard(user_id=self.user)
        self.biz_card.save()
        self.contact = Contacts(businesscard_id=self.biz_card,
                                user_id=self.user)
        self.contact.save()
Esempio n. 24
0
    def register_user(self, blockchain: str, identity: str) -> User:
        #todo do not allow custom usernames with prefix user_
        user = User(username='******'.format(blockchain, identity),
                    first_name=blockchain,
                    last_name=identity)
        user.save()

        identity = UserIdentity(identity=identity,
                                blockchain=blockchain,
                                user=user)
        identity.save()

        return user
Esempio n. 25
0
 def setUpTestData(cls):
     user = User(username='******', password='******')
     user.save()
     tags = [
         'python,django',
         'python',
         'js,react',
         'drf',
     ]
     for i in range(20):
         question = Question(title='title{0}'.format(i),
                             content='content{0}'.format(i),
                             create_by=user,
                             vote_count=20 - i)
         question.save()
         question.save_tags(tags[i // 5])
Esempio n. 26
0
class AddTest(WebTest):
    def setUp(self):
        self.user = User()
        self.user.save()

        self.auth_header = {
            'X_ACCESSTOKEN':
            UsersService().generate_token(self.user, 'ethereum')
        }

    def test_add(self):
        ui = ContractUI(name='erc202',
                        slug='erc202',
                        blockchain='ethereum',
                        description='qq',
                        functions={
                            'transfer': {
                                'title': 'arg1'
                            },
                            'symbol': {
                                'title': 'arg1'
                            },
                            'decimal': {
                                'title': 'arg1'
                            },
                            'name': {
                                'title': 'arg1'
                            },
                        },
                        abi=ETH_ABI)
        ui.full_clean(exclude=['abi', 'created_at', 'updated_at', 'user'])
        ui.save()

        resp = self.app.post_json('/api/contracts_uis/1/add-to-dashboard',
                                  params={
                                      'network_id':
                                      '4',
                                      'address':
                                      '0x000000000000000000000000000000000007'
                                  },
                                  headers=self.auth_header)
        self.assertIn('ok', resp.json)

        dapps = Dapp.objects.filter(
            address='0x000000000000000000000000000000000007', network_id='4')
        self.assertEqual(1, len(dapps))
        self.assertEqual(dapps[0].contract_ui, ui)
Esempio n. 27
0
 def addcustomer(self, request, *args, **kwargs):
     # userdn = request.user.account_id
     # token = request.auth
     serializer = AddCustomerSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     username = serializer.validated_data['username']
     password = serializer.validated_data['password']
     # name = serializer.validated_data['name']
     email = serializer.validated_data['email']
     user = User()
     user.username = username
     user.set_admin_permission('khachhang')
     user.set_password(password)
     # user.name = name
     user.email = email
     user.save()
     return Response(data=user.id, status=status.HTTP_200_OK)
Esempio n. 28
0
    def test_create_with_no_unit(self):
        user = User(email='*****@*****.**', password='******', is_superuser=True)
        user.save()
        self.assertEqual(User.objects.count(), 1)
        self.client.force_authenticate(user=user)

        response = self.client.post('http://0.0.0.0:8000/api/recipes',
                                    {'title': 'Recipe'},
                                    format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(Recipe.objects.count(), 1)

        response = self.client.post(
            'http://0.0.0.0:8000/api/recipes/1/ingredients',
            {'name': 'Ingredient'},
            format='json')
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(Ingredient.objects.count(), 1)
Esempio n. 29
0
    def save_user(validated_data):
        user = User(email=validated_data['email'],
                    name=validated_data['name'],
                    phone_number=validated_data['phone_number'])
        user.set_password(validated_data['password'])
        user.is_active = False
        user.email_confirmation_token = generate_unique_key(user.email)
        user.save()

        send_email_job_registration(
            'Print Studio',
            user.email,
            'account_confirmation',
            {
                'token': user.email_confirmation_token,
                'name': user.name
            },
            'Welcome to Print Studio',
        )
Esempio n. 30
0
 def save_user(validated_data):
     """
     Saving signed up user to db,
     Send email address confirmation email to user.
     """
     user = User(email=validated_data['email'])
     user.set_password(validated_data['password'])
     user.is_active = False
     user.first_name = validated_data['first_name']
     user.last_name = validated_data['last_name']
     user.is_active = False
     user.email_confirmation_token = generate_unique_key(user.email)
     user.save()
     send_email_job(
         user.email,
         'account_confirmation',
         {'token': user.email_confirmation_token},
         'Email Confirmation',
     )
Esempio n. 31
0
def createTempUser(request):
    if "restaurant" not in request.session:
        messages.error(request, "You do not have authorization to do that")
        return redirect("/")

    if request.method == "POST":
        newUser = User(lastName=request.POST["name"],
                       time=datetime.datetime.now(),
                       partySize=request.POST["partySize"],
                       isTemp=True,
                       restaurant=Restaurant.objects.get(
                           id=request.session["restaurant"]))

        if len(request.POST["email"]) > 0:
            newUser.email = request.POST["email"]

        newUser.save()

    return redirect("/restaurants/dashboard")
Esempio n. 32
0
def users_context():
    init_username = '******'
    init_password = '******'

    user = User(
        username=init_username,
        name='지찬규',
    )
    user.set_password(init_password)
    user.save()

    user_session = UserSession.objects.create(user_id=user.id,
                                              ip='127.0.0.1',
                                              uuid=uuid4().__str__())

    init_data = {
        'user': user,
        'session': user_session,
        'init_username': init_username,
        'init_password': init_password
    }

    return init_data
Esempio n. 33
0
    def test_add_to_dashboard(self):
        user2 = User()
        user2.username = '******'
        user2.save()

        dapp = Dapp.create(constructor=self.constructor)
        dapp.has_public_access = True
        dapp.title = 'titl'
        dapp.save()
        UserDapp.objects.create(user=user2, dapp=dapp, title=dapp.title)

        assert Dapp.objects.count() == 1

        resp = self.app.post_json('/api/dapps/{}/add-to-dashboard'.format(
            dapp.slug),
                                  headers=self.auth_header)
        assert resp.status_code == 200
        assert 'ok' in resp.json

        self.assertEqual(1, Dapp.objects.count())
        dapps = Dapp.objects.order_by('created_at').all()
        assert dapps[0].pk == dapp.pk
        self.assertIn(self.user, dapps[0].users.all())
        self.assertIn(user2, dapps[0].users.all())
Esempio n. 34
0
def MaestrosView(request,pagina):
	if request.user.is_authenticated and request.user.is_staff and request.user.is_superuser:
		maestros = User.objects.filter(status='Maestro')
		paginator = Paginator(maestros,10)
		try:
			page=int(pagina)
		except:
			page = 1
		try:
			maestros=paginator.page(page)
		except (EmptyPage,InvalidPage):
			maestros = paginator.page(paginator.num_pages)
		info = "Iniciando"
		if request.method =="POST":
			if "buscando" in request.POST:
				try:
					buscando = request.POST['buscando']
					maestros = User.objects.filter(nombres__contains=buscando,status='Maestro')
					info = 'Encontrados'
					conte = {'informacion':info,'form':form,'maestros':maestros,'maestros':maestros}
					return render_to_response('Admin/maestros.html',conte, context_instance=RequestContext(request))
				except:
					pass
			if "id_product" in request.POST:
				try:
					id_producto = request.POST['id_product']
					p = User.objects.get(pk=id_producto)
					p.delete()#eliminamos el registro
					return HttpResponseRedirect('/Administrador/maestros/page/1/')
				except:
					return HttpResponseRedirect('/Administrador/maestros/page/1/')
			form = UserForm(request.POST,request.FILES)
			if "nuevo" in request.POST:
				if form.is_valid():
					m = User()
					username = form.cleaned_data['username']
					password = form.cleaned_data['password']
					nombres = form.cleaned_data['nombres']
					apellidos = form.cleaned_data['apellidos']
					m.username = username
					m.set_password(password)
					m.nombres = nombres
					m.apellidos = apellidos
					m.status = "Maestro"
					m.is_staff = True
					m.is_actve = True
					m.is_superuser = False
					m.save() #Guardamos la informacion
					return HttpResponseRedirect('/Administrador/maestros/page/1/')
				else:
					form = UserForm()
					info = 'Completa todos los datos'
					ctx = {'informacion':info,'form':form,'maestros':maestros}
					return render_to_response('Admin/maestros.html',ctx, context_instance=RequestContext(request))
		else:
			form = UserForm()
			info = "Iniciando"
			ctx = {'form':form,'informacion':info,'maestros':maestros}
			return render_to_response('Admin/maestros.html',ctx, context_instance=RequestContext(request))
		ctx = {'form':form,'informacion':info,'maestros':maestros}
		return render_to_response('Admin/maestros.html',ctx, context_instance=RequestContext(request))
	else:
		return HttpResponseRedirect('/login/')
Esempio n. 35
0
class TestContactModel(TestCase):

    def setUp(self):
        self.user = User(
            email="*****@*****.**",
            password="******"
        )
        self.user.save()
        self.biz_card = BusinessCard(user_id=self.user)
        self.biz_card.save()
        self.contact = Contacts(businesscard_id=self.biz_card,
                                user_id=self.user)
        self.contact.save()

    def test_user_create(self):
        self.assertIsInstance(self.user, User)

    def test_contact_create(self):
        self.assertIsInstance(self.biz_card, BusinessCard)
        contact = Contacts(businesscard_id=self.biz_card)
        # contact.save()
        self.assertIsInstance(contact, Contacts)

    def test_contact_media_create(self):
        contact_media = ContactMedia(user_id=self.user,
                                     contact_id=self.contact,
                                     img_url=create_image_file()
                                     )
        contact_media.save()
        self.assertIsInstance(contact_media, ContactMedia)
        self.assertRegexpMatches(
            contact_media.img_url.url,
            re.compile(r'.*bcards_gallery/*test.*\.png'))

    def test_contact_profile_create(self):
        request = HttpRequest()
        request.user = self.user
        contact_view_set = storeContactsViewSet()
        request.data = {}
        request.data['contact_profile_image'] = create_image_file()
        request.data['contact_id'] = self.contact.id
        request.data['user_id'] = self.contact.id
        response = contact_view_set.upload_contact_profile(request)
        self.assertEqual(response.status_code, 200)

    def test_invalidcontact_profile_create(self):
        request = HttpRequest()
        request.user = self.user
        contact_view_set = storeContactsViewSet()
        request.data = {}
        request.data['contact_profile_image'] = create_image_file()
        request.data['contact_id'] = 5000
        response = contact_view_set.upload_contact_profile(request)
        self.assertEqual(response.status_code, 400, "Invalid Contact id")

    def test_create_error(self):
        new_user = User(email='*****@*****.**', password='******')
        new_user.save()
        biz_card = BusinessCard(user_id=new_user)
        biz_card.save()
        with self.assertRaises(ValueError):
            new_contact = Contacts(businesscard_id=biz_card,
                                   user_id=new_user.id)
            new_contact.save()

    def tearDown(self):
        self.user.delete()
        self.biz_card.delete()
        self.contact.delete()
Esempio n. 36
0
def AlumnosView(request,pagina):
	if request.user.is_authenticated and request.user.is_staff and request.user.is_superuser:
		alumnos = User.objects.filter(status='Alumno')
		paginator = Paginator(alumnos,10)
		try:
			page=int(pagina)
		except:
			page = 1
		try:
			alumnos=paginator.page(page)
		except (EmptyPage,InvalidPage):
			alumnos = paginator.page(paginator.num_pages)
		fecha = datetime.now()
		if fecha.month == 2 or fecha.month == 9:
			for alumno in alumnos:
				alumno.status_semestre = True
				alumno.save()
		info = "Iniciando"
		if request.method =="POST":
			if "buscando" in request.POST:
				buscando = request.POST['buscando']
				try:
					alumnos = User.objects.filter(username__contains=buscando,status='Alumno')
					if alumnos.count() == 0:
						alumnos = User.objects.filter(nombres__contains=buscando,status='Alumno')
					info = 'Encontrados'
					conte = {'informacion':info,'alumnos':alumnos,'alumnos':alumnos}
					return render_to_response('Admin/alumnos.html',conte, context_instance=RequestContext(request))
				except:
					pass
			if "id_product" in request.POST:
				try:
					id_producto = request.POST['id_product']
					p = User.objects.get(pk=id_producto)
					p.delete()#eliminamos el registro
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
				except:
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
			if "actualizar" in request.POST:
				try:
					for alu in alumnos:
						if alu.status_semestre == True:
							sem = int(alu.semestre)
							if sem < 12:
								alu.semestre = sem+1
								alu.status_semestre = False
								alu.save()
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
				except:
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
			formAlu = AlumnoForm(request.POST,request.FILES)
			if "nuevo" in request.POST:
				if formAlu.is_valid():
					al = User()
					username = formAlu.cleaned_data['username']
					password = formAlu.cleaned_data['password']
					nombres = formAlu.cleaned_data['nombres']
					apellidos = formAlu.cleaned_data['apellidos']
					carrera = formAlu.cleaned_data['carrera']
					semestre = formAlu.cleaned_data['semestre']
					al.username = username
					al.set_password(password)
					al.nombres = nombres
					al.apellidos = apellidos
					al.carrera = carrera
					al.semestre = semestre
					al.status = "Alumno"
					al.is_staff = False
					al.is_actve = True
					al.is_superuser = False
					al.save() #Guardamos la informacion
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
				else:
					formAlu = AlumnoForm()
					info = 'Algun dato es erroneo'
					ctx = {'informacion':info,'formAlu':formAlu,'alumnos':alumnos,'fecha':fecha}
					return render_to_response('Admin/alumnos.html',ctx, context_instance=RequestContext(request))
		else:
			formAlu = AlumnoForm()
			info = "Iniciando"
			ctx = {'formAlu':formAlu,'informacion':info,'alumnos':alumnos,'fecha':fecha}
			return render_to_response('Admin/alumnos.html',ctx, context_instance=RequestContext(request))
		ctx = {'formAlu':formAlu,'informacion':info,'alumnos':alumnos,'fecha':fecha}
		return render_to_response('Admin/alumnos.html',ctx, context_instance=RequestContext(request))
	else:
		return HttpResponseRedirect('/login/')
Esempio n. 37
0
    def save_booking(self, first_name, last_name, contact_number, email_from, email_to, reference_number,
                     message, address, suburb, state, country, postcode, appointment_date, total_price,
                     deposit_paid, total_owing, booking_type):
        """
        Saves the booking details into the database.
        :param first_name:
        :param last_name:
        :param contact_number:
        :param email_from:
        :param email_to:
        :param reference_number:
        :param message:
        :param address:
        :param suburb:
        :param state:
        :param country:
        :param postcode:
        :param appointment_date:
        :param total_price:
        :param deposit_paid:
        :param total_owing:
        :param booking_type:
        :return: True if successful, False otherwise
        """
        appointment_date_obj = datetime.strptime(appointment_date, '%A, %d %B %Y')

        # if user exists, delete it
        try:
            existing_user = User.objects.get(email_address=email_to)
            if not existing_user.administrator:
                existing_user.first_name = first_name
                existing_user.last_name = last_name
                existing_user.contact_number = contact_number
                existing_user.address = address
                existing_user.suburb = suburb
                existing_user.state = state
                existing_user.postcode = country
                existing_user.country = Country.objects.get(iso='AU')
                existing_user.save()
        except ObjectDoesNotExist:
            pass

        # save user detail
        user = User(email_address=email_to, first_name=first_name, last_name=last_name, contact_number=contact_number,
                    address=address, suburb=suburb, state=state, postcode=postcode, receive_newsletter=True,
                    administrator=False, country=Country.objects.get(iso='AU'))
        user.save()

        # save booking detail
        deposit_paid_arr = deposit_paid.split(' ')
        deposit_paid_amount = float(deposit_paid_arr[0])
        booking = Booking(reference_number=reference_number, appointment_date=appointment_date_obj,
                          message_to_consultant=message, paid_amount=deposit_paid_amount, email_address=user,
                          booking_type=BookingTypes.objects.get(name=booking_type))
        booking.save()

        # send confirmation email to user
        self.send_confirmation_email(first_name, last_name, contact_number, email_from, email_to, reference_number,
                                     message, address, suburb, state, country, postcode, appointment_date,
                                     total_price, deposit_paid, total_owing, booking_type)

        return True