Commit bd38fdb9 authored by John Red Medrano's avatar John Red Medrano

Merge pull request #106 in RMS/api-main-service from red-develop to RMSv2

* commit 'b3f64fda':
  pull update from gladys branch
  replace all slug on management section with code
parents 59fbdf26 b3f64fda
...@@ -9,12 +9,12 @@ from django.forms.models import model_to_dict ...@@ -9,12 +9,12 @@ from django.forms.models import model_to_dict
class UserSerializer(serializers.ModelSerializer): class UserSerializer(serializers.ModelSerializer):
def to_representation(self, instance): # department = serializers.CharField(write_only=True)
def to_representation(self, instance):
ret = super().to_representation(instance) ret = super().to_representation(instance)
ret['department'] = model_to_dict(instance.department) ret['department'] = model_to_dict(instance.department)
ret['company'] = model_to_dict(instance.department.company) ret['company'] = model_to_dict(instance.department.company)
# print(instance.application.all())
application = [data['id'] for data in instance.application.values()] application = [data['id'] for data in instance.application.values()]
ret['application'] = application ret['application'] = application
...@@ -27,7 +27,7 @@ class UserSerializer(serializers.ModelSerializer): ...@@ -27,7 +27,7 @@ class UserSerializer(serializers.ModelSerializer):
'username', 'contact_no', 'username', 'contact_no',
'email', 'default_app', 'email', 'default_app',
'user_type', 'is_active', 'user_type', 'is_active',
'doa' 'doa', 'department'
) )
......
...@@ -30,7 +30,7 @@ class UserViewSet(viewsets.ModelViewSet): ...@@ -30,7 +30,7 @@ class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all() queryset = User.objects.all()
serializer_class = serializer.UserSerializer serializer_class = serializer.UserSerializer
pagination_class = CustomPagination pagination_class = CustomPagination
# lookup_field = 'code' lookup_field = 'code'
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter) filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filterset_class = UserFilterSet filterset_class = UserFilterSet
ordering_fields = '__all__' ordering_fields = '__all__'
...@@ -53,13 +53,14 @@ class UserViewSet(viewsets.ModelViewSet): ...@@ -53,13 +53,14 @@ class UserViewSet(viewsets.ModelViewSet):
password_hash = make_password(password) password_hash = make_password(password)
app = Application.objects.filter( app = Application.objects.filter(
id__in=request.data['application'] code__in=request.data['application']
) )
instance = User.objects.get( instance = User.objects.get(
id=serializer.data['id'] id=serializer.data['id']
) )
instance.application.set(app) instance.application.set(app)
User.objects.filter( User.objects.filter(
......
...@@ -19,6 +19,7 @@ class ApplicationViewSet(viewsets.ModelViewSet): ...@@ -19,6 +19,7 @@ class ApplicationViewSet(viewsets.ModelViewSet):
queryset = Application.objects.all() queryset = Application.objects.all()
serializer_class = serializer.ApplicationSerializer serializer_class = serializer.ApplicationSerializer
pagination_class = CustomPagination pagination_class = CustomPagination
lookup_field = 'code'
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter) filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filterset_class = ApplicationFilterSet filterset_class = ApplicationFilterSet
ordering_fields = '__all__' ordering_fields = '__all__'
......
...@@ -19,6 +19,7 @@ class CompanyViewSet(viewsets.ModelViewSet): ...@@ -19,6 +19,7 @@ class CompanyViewSet(viewsets.ModelViewSet):
queryset = Company.objects.all() queryset = Company.objects.all()
serializer_class = serializer.CompanySerializer serializer_class = serializer.CompanySerializer
pagination_class = CustomPagination pagination_class = CustomPagination
lookup_field = 'code'
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter) filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filterset_class = CompanyFilterSet filterset_class = CompanyFilterSet
ordering_fields = '__all__' ordering_fields = '__all__'
......
...@@ -19,6 +19,7 @@ class DepartmentViewSet(viewsets.ModelViewSet): ...@@ -19,6 +19,7 @@ class DepartmentViewSet(viewsets.ModelViewSet):
queryset = Department.objects.all() queryset = Department.objects.all()
serializer_class = serializer.DepartmentSerializer serializer_class = serializer.DepartmentSerializer
pagination_class = CustomPagination pagination_class = CustomPagination
lookup_field = 'code'
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter) filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filterset_class = DepartmentFilterSet filterset_class = DepartmentFilterSet
ordering_fields = '__all__' ordering_fields = '__all__'
......
...@@ -21,6 +21,7 @@ class ModuleViewSet(viewsets.ModelViewSet): ...@@ -21,6 +21,7 @@ class ModuleViewSet(viewsets.ModelViewSet):
queryset = Module.objects.order_by('application', 'parent', 'sort_id') queryset = Module.objects.order_by('application', 'parent', 'sort_id')
serializer_class = serializer.ModuleSerializer serializer_class = serializer.ModuleSerializer
pagination_class = CustomPagination pagination_class = CustomPagination
lookup_field = 'code'
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter) filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filterset_class = ModuleFilterSet filterset_class = ModuleFilterSet
ordering_fields = '__all__' ordering_fields = '__all__'
......
...@@ -15,6 +15,7 @@ class AdminCompanyViewSet(viewsets.ModelViewSet): ...@@ -15,6 +15,7 @@ class AdminCompanyViewSet(viewsets.ModelViewSet):
queryset = Company.objects.all() queryset = Company.objects.all()
serializer_class = AdminCompanySerializer serializer_class = AdminCompanySerializer
pagination_class = CustomPagination pagination_class = CustomPagination
lookup_field = 'code'
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter) filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filterset_class = CompanyFilterSet filterset_class = CompanyFilterSet
ordering_fields = '__all__' ordering_fields = '__all__'
......
...@@ -18,6 +18,7 @@ class AdminDepartmentViewSet(viewsets.ModelViewSet): ...@@ -18,6 +18,7 @@ class AdminDepartmentViewSet(viewsets.ModelViewSet):
queryset = Department.objects.all() queryset = Department.objects.all()
serializer_class = serializer.AdminDepartmentSerializer serializer_class = serializer.AdminDepartmentSerializer
pagination_class = CustomPagination pagination_class = CustomPagination
lookup_field = 'code'
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter) filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filterset_class = DepartmentFilterSet filterset_class = DepartmentFilterSet
ordering_fields = '__all__' ordering_fields = '__all__'
......
This diff is collapsed.
# Generated by Django 2.2 on 2019-09-09 17:14
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('entities', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='application',
name='app_code',
),
]
# Generated by Django 2.2 on 2019-09-10 09:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0002_remove_application_app_code'),
]
operations = [
migrations.AlterField(
model_name='changerequestformheader',
name='requested_to_template_id',
field=models.CharField(max_length=255, unique=True),
),
migrations.AlterField(
model_name='changerequesttemplateheader',
name='requested_to_template_id',
field=models.CharField(max_length=255, unique=True),
),
]
# Generated by Django 2.2 on 2019-09-10 16:10
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0003_auto_20190910_0956'),
]
operations = [
migrations.AlterField(
model_name='module',
name='parent',
field=models.IntegerField(blank=True, null=True),
),
]
# Generated by Django 2.2 on 2019-09-10 16:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0004_auto_20190910_1610'),
]
operations = [
migrations.CreateModel(
name='EmailLogs',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(auto_now_add=True)),
('createdby', models.CharField(max_length=255)),
('modified', models.DateTimeField(auto_now=True)),
('modifiedby', models.CharField(max_length=255)),
('template', models.CharField(max_length=255)),
('recipients', models.CharField(max_length=255)),
('content', models.TextField()),
],
options={
'abstract': False,
},
),
]
# Generated by Django 2.2 on 2019-09-10 17:02
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0005_emaillogs'),
]
operations = [
migrations.AddField(
model_name='emaillogs',
name='is_sent',
field=models.BooleanField(default=True),
),
]
# Generated by Django 2.2 on 2019-09-11 10:26
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('entities', '0006_emaillogs_is_sent'),
]
operations = [
migrations.AlterModelTable(
name='emaillogs',
table='email_logs',
),
]
# Generated by Django 2.2 on 2019-09-11 11:02
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0006_emaillogs_is_sent'),
]
operations = [
migrations.AlterField(
model_name='changerequestformheader',
name='requested_to_template_id',
field=models.CharField(max_length=255),
),
]
# Generated by Django 2.2 on 2019-09-11 17:15
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0007_auto_20190911_1102'),
]
operations = [
migrations.AlterField(
model_name='changerequesthistory',
name='form_code',
field=models.CharField(blank=True, max_length=255, null=True),
),
]
# Generated by Django 2.2 on 2019-09-11 11:53
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0007_auto_20190911_1026'),
]
operations = [
migrations.CreateModel(
name='PasswordReset',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('email', models.EmailField(max_length=255)),
('token', models.CharField(max_length=255)),
('created_at', models.DateTimeField()),
('timeout_at', models.DateTimeField()),
('is_active', models.BooleanField(default=True)),
('code', models.CharField(max_length=50)),
],
options={
'db_table': 'password_resets',
},
),
]
# Generated by Django 2.2 on 2019-09-11 18:45
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('entities', '0008_auto_20190911_1715'),
]
operations = [
migrations.RenameField(
model_name='changerequestformapprovers',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformattachments',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformdetails',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformheader',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformstakeholders',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplateapprovers',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplateattachments',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplatedetails',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplateheader',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplatestakeholders',
old_name='deleted_at',
new_name='archived_at',
),
]
# Generated by Django 2.2 on 2019-09-13 11:43
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('entities', '0009_auto_20190911_1845'),
]
operations = [
migrations.RemoveField(
model_name='changerequestformapprovers',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequestformattachments',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequestformdetails',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequestformheader',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequestformstakeholders',
name='archived_at',
),
]
# Generated by Django 2.2 on 2019-09-13 15:45
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('entities', '0008_passwordreset'),
('entities', '0010_auto_20190913_1143'),
]
operations = [
]
# Generated by Django 2.2 on 2019-09-13 17:04
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0011_merge_20190913_1545'),
]
operations = [
migrations.AlterField(
model_name='changerequesttemplateheader',
name='requested_to_target_date',
field=models.CharField(blank=True, max_length=10, null=True),
),
]
# Generated by Django 2.2 on 2019-09-17 16:20
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0012_auto_20190913_1704'),
]
operations = [
migrations.AlterField(
model_name='changerequesthistory',
name='action',
field=models.CharField(max_length=50),
),
migrations.AlterField(
model_name='changerequesthistory',
name='entity',
field=models.CharField(max_length=50),
),
migrations.AlterField(
model_name='notification',
name='account_no',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='notification',
name='app',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='notification',
name='form_code',
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AlterField(
model_name='notification',
name='sender_account_no',
field=models.CharField(blank=True, max_length=255, null=True),
),
]
...@@ -43,6 +43,7 @@ class Application(AuditClass): ...@@ -43,6 +43,7 @@ class Application(AuditClass):
class Module(AuditClass): class Module(AuditClass):
application = models.ForeignKey( application = models.ForeignKey(
Application, Application,
to_field='code',
related_name='modules', related_name='modules',
on_delete=models.PROTECT on_delete=models.PROTECT
) )
...@@ -108,6 +109,7 @@ class Department(AuditClass): ...@@ -108,6 +109,7 @@ class Department(AuditClass):
# ) # )
company = models.ForeignKey( company = models.ForeignKey(
Company, Company,
to_field='code',
related_name='companies', related_name='companies',
on_delete=models.PROTECT on_delete=models.PROTECT
) )
...@@ -204,9 +206,12 @@ class User(AbstractUser): ...@@ -204,9 +206,12 @@ class User(AbstractUser):
Application Application
) )
department = models.ForeignKey( department = models.ForeignKey(
Department, related_name='department_users', Department,
to_field='code',
related_name='department_users',
on_delete=models.PROTECT, on_delete=models.PROTECT,
default=1 blank=True,
null=True
) )
# role = models.ForeignKey( # role = models.ForeignKey(
# Role, # Role,
...@@ -214,7 +219,15 @@ class User(AbstractUser): ...@@ -214,7 +219,15 @@ class User(AbstractUser):
# on_delete=models.PROTECT, # on_delete=models.PROTECT,
# default=1 # default=1
# ) # )
default_app = models.CharField(blank=True, null=True, max_length=255) # default_app = models.CharField(blank=True, null=True, max_length=255)
default_app = models.ForeignKey(
Application,
to_field='code',
related_name='default_app',
on_delete=models.PROTECT,
blank=True,
null=True
)
user_type = models.CharField( user_type = models.CharField(
choices=[(tag.value, tag.value) for tag in enums.UserTypeEnum], choices=[(tag.value, tag.value) for tag in enums.UserTypeEnum],
default=enums.UserTypeEnum.USER.value, default=enums.UserTypeEnum.USER.value,
...@@ -233,7 +246,9 @@ class User(AbstractUser): ...@@ -233,7 +246,9 @@ class User(AbstractUser):
null=True null=True
) )
doa = models.ForeignKey( doa = models.ForeignKey(
'User', related_name='doa_users', 'User',
to_field='code',
related_name='doa_users',
on_delete=models.PROTECT, on_delete=models.PROTECT,
blank=True, blank=True,
null=True null=True
...@@ -258,6 +273,7 @@ class User(AbstractUser): ...@@ -258,6 +273,7 @@ class User(AbstractUser):
class UserImage(AuditClass): class UserImage(AuditClass):
user = models.ForeignKey( user = models.ForeignKey(
User, User,
to_field='code',
related_name='user_images', related_name='user_images',
on_delete=models.PROTECT on_delete=models.PROTECT
) )
...@@ -300,7 +316,7 @@ class AuthToken(models.Model): ...@@ -300,7 +316,7 @@ class AuthToken(models.Model):
passcode = models.CharField(max_length=255) passcode = models.CharField(max_length=255)
timeout = models.IntegerField() timeout = models.IntegerField()
is_active = models.BooleanField(default=False) is_active = models.BooleanField(default=False)
user = models.ForeignKey(User, user = models.ForeignKey(User, to_field='code',
related_name='auth_access_token', related_name='auth_access_token',
on_delete=models.PROTECT) on_delete=models.PROTECT)
...@@ -957,3 +973,4 @@ class PasswordReset(models.Model): ...@@ -957,3 +973,4 @@ class PasswordReset(models.Model):
class Meta: class Meta:
db_table = 'password_resets' db_table = 'password_resets'
...@@ -84,7 +84,7 @@ class rms: ...@@ -84,7 +84,7 @@ class rms:
elif rms.user_type(self) == rms.enums_company: elif rms.user_type(self) == rms.enums_company:
user_company = rms.user(self).department.company user_company = rms.user(self).department.company
request_department = Department.objects.filter( request_department = Department.objects.filter(
Q(id=request.data['department']) & Q(code=request.data['department']) &
Q(company=user_company) Q(company=user_company)
) )
if not request_department: if not request_department:
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment