parent
6992114ce6
commit
170878441e
11 changed files with 83 additions and 181 deletions
@ -1,28 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
# Generated by Django 1.11.1 on 2017-05-27 02:53 |
|
||||||
from __future__ import unicode_literals |
|
||||||
|
|
||||||
from django.conf import settings |
|
||||||
import django.core.validators |
|
||||||
from django.db import migrations, models |
|
||||||
import django.db.models.deletion |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
initial = True |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='UserInfo', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('phone_number', models.CharField(blank=True, max_length=16, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.", regex='^\\+?1?\\d{9,15}$')])), |
|
||||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), |
|
||||||
], |
|
||||||
), |
|
||||||
] |
|
@ -1,22 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
# Generated by Django 1.11.1 on 2017-05-27 03:38 |
|
||||||
from __future__ import unicode_literals |
|
||||||
|
|
||||||
from django.conf import settings |
|
||||||
from django.db import migrations, models |
|
||||||
import django.db.models.deletion |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('api', '0001_initial'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AlterField( |
|
||||||
model_name='userinfo', |
|
||||||
name='user', |
|
||||||
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='user_info', to=settings.AUTH_USER_MODEL), |
|
||||||
), |
|
||||||
] |
|
@ -1,22 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
# Generated by Django 1.11.1 on 2017-05-27 04:39 |
|
||||||
from __future__ import unicode_literals |
|
||||||
|
|
||||||
from django.conf import settings |
|
||||||
from django.db import migrations, models |
|
||||||
import django.db.models.deletion |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('api', '0002_auto_20170527_0338'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AlterField( |
|
||||||
model_name='userinfo', |
|
||||||
name='user', |
|
||||||
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), |
|
||||||
), |
|
||||||
] |
|
@ -1,34 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
# Generated by Django 1.11.1 on 2017-05-27 07:30 |
|
||||||
from __future__ import unicode_literals |
|
||||||
|
|
||||||
from django.conf import settings |
|
||||||
from django.db import migrations, models |
|
||||||
import django.db.models.deletion |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
|
||||||
('api', '0003_auto_20170527_0439'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='Client', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('business_number', models.CharField(blank=True, max_length=16)), |
|
||||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), |
|
||||||
], |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Provider', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('sin', models.CharField(blank=True, max_length=16)), |
|
||||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), |
|
||||||
], |
|
||||||
), |
|
||||||
] |
|
@ -1,65 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
# Generated by Django 1.11.1 on 2017-05-27 22:47 |
|
||||||
from __future__ import unicode_literals |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
import django.db.models.deletion |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('api', '0004_client_provider'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='Manage', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('note', models.CharField(blank=True, max_length=500)), |
|
||||||
('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Client')), |
|
||||||
('provider', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Provider')), |
|
||||||
], |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Price', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('amount', models.DecimalField(decimal_places=2, max_digits=8)), |
|
||||||
('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Client')), |
|
||||||
('provider', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Provider')), |
|
||||||
], |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Shift', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('set_start', models.DateTimeField()), |
|
||||||
('set_end', models.DateTimeField()), |
|
||||||
('amount', models.DecimalField(decimal_places=2, max_digits=8)), |
|
||||||
('description', models.CharField(blank=True, max_length=100)), |
|
||||||
('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Client')), |
|
||||||
('provider', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Provider')), |
|
||||||
], |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Work', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('color', models.CharField(blank=True, max_length=16)), |
|
||||||
('label', models.CharField(blank=True, max_length=100)), |
|
||||||
('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Client')), |
|
||||||
], |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='shift', |
|
||||||
name='work', |
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Work'), |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='price', |
|
||||||
name='work', |
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='api.Work'), |
|
||||||
), |
|
||||||
] |
|
@ -0,0 +1,20 @@ |
|||||||
|
from pprint import pprint |
||||||
|
from rest_framework import permissions |
||||||
|
from caremyway.api.models import Client, Provider |
||||||
|
|
||||||
|
class UserTypePermission(permissions.BasePermission): |
||||||
|
""" |
||||||
|
Disallow creation of client or provider if one already exists |
||||||
|
""" |
||||||
|
message = "User is already either a client or a provider." |
||||||
|
|
||||||
|
def has_permission(self, request, view): |
||||||
|
user = request.data.get('user', None) |
||||||
|
|
||||||
|
if request.method != 'POST' or user is None: |
||||||
|
return True |
||||||
|
elif not Client.objects.filter(user=user).exists() \ |
||||||
|
and not Provider.objects.filter(user=user).exists(): |
||||||
|
return True |
||||||
|
else: |
||||||
|
return False |
Loading…
Reference in new issue