diff --git a/khaatatest/khaata_admin/__init__.py b/khaata_admin/__init__.py
similarity index 100%
rename from khaatatest/khaata_admin/__init__.py
rename to khaata_admin/__init__.py
diff --git a/khaata_admin/admin.py b/khaata_admin/admin.py
new file mode 100644
index 0000000..f298344
--- /dev/null
+++ b/khaata_admin/admin.py
@@ -0,0 +1,43 @@
+from django.contrib import admin
+from django.contrib.auth.admin import UserAdmin
+from django.utils.html import format_html
+from .models import SettlementSummary, User
+
+
+# Register your models here.
+class SettlementSummaryAdmin(admin.ModelAdmin):
+ list_display = (
+ 'user_id', 'view_records_link', 'total_num_transactions', 'settlement_id', 'report_id', 'total_amount',
+ 'start_date', 'end_date', 'deposit_date')
+ # list_display_links = ('transaction_id',)
+ list_filter = ('user_id', 'settlement_id')
+
+ def get_queryset(self, request):
+ query_set = super(SettlementSummaryAdmin, self).get_queryset(request)
+ if request.user.is_superuser:
+ return query_set
+ return query_set.filter(user_id=request.user.link_to_user)
+
+ def view_records_link(self, obj):
+ url = u'../transaction/?user_id=%d&settlement_id=%s' % (obj.user_id, obj.settlement_id)
+ return format_html("View Records", url=url)
+
+
+class CustomUserAdmin(UserAdmin):
+ list_display = ['username', 'first_name', 'last_name', 'link_to_user']
+ add_fieldsets = UserAdmin.add_fieldsets + (
+ (None, {
+ 'classes': ('wide',),
+ 'fields': ('link_to_user',),
+ }),
+ )
+ fieldsets = UserAdmin.fieldsets + (
+ (None, {
+ 'classes': ('wide',),
+ 'fields': ('link_to_user',),
+ }),
+ )
+
+
+admin.site.register(SettlementSummary, SettlementSummaryAdmin)
+admin.site.register(User, CustomUserAdmin)
diff --git a/khaatatest/khaata_admin/apps.py b/khaata_admin/apps.py
similarity index 100%
rename from khaatatest/khaata_admin/apps.py
rename to khaata_admin/apps.py
diff --git a/khaata_admin/migrations/0001_initial.py b/khaata_admin/migrations/0001_initial.py
new file mode 100644
index 0000000..c804fcb
--- /dev/null
+++ b/khaata_admin/migrations/0001_initial.py
@@ -0,0 +1,65 @@
+# Generated by Django 3.0.4 on 2020-03-16 09:14
+
+import django.contrib.auth.models
+import django.contrib.auth.validators
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ('auth', '0011_update_proxy_permissions'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='SettlementSummary',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('user_id', models.IntegerField()),
+ ('settlement_id', models.CharField(max_length=255)),
+ ('start_date', models.DateField()),
+ ('end_date', models.DateField()),
+ ('deposit_date', models.DateField()),
+ ('total_amount', models.CharField(max_length=255)),
+ ('total_num_transactions', models.IntegerField()),
+ ('report_id', models.CharField(max_length=255)),
+ ('updated', models.DateTimeField(auto_now=True)),
+ ('created', models.DateTimeField(auto_now_add=True)),
+ ],
+ options={
+ 'ordering': ['created'],
+ 'unique_together': {('settlement_id', 'report_id')},
+ },
+ ),
+ migrations.CreateModel(
+ name='User',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('password', models.CharField(max_length=128, verbose_name='password')),
+ ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
+ ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
+ ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
+ ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
+ ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
+ ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
+ ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
+ ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
+ ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
+ ('link_to_user', models.IntegerField(null=True)),
+ ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
+ ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
+ ],
+ options={
+ 'verbose_name': 'user',
+ 'verbose_name_plural': 'users',
+ 'abstract': False,
+ },
+ managers=[
+ ('objects', django.contrib.auth.models.UserManager()),
+ ],
+ ),
+ ]
diff --git a/khaatatest/khaata_admin/migrations/__init__.py b/khaata_admin/migrations/__init__.py
similarity index 100%
rename from khaatatest/khaata_admin/migrations/__init__.py
rename to khaata_admin/migrations/__init__.py
diff --git a/khaatatest/khaata_admin/models.py b/khaata_admin/models.py
similarity index 67%
rename from khaatatest/khaata_admin/models.py
rename to khaata_admin/models.py
index aa363d7..ad5dd7e 100644
--- a/khaatatest/khaata_admin/models.py
+++ b/khaata_admin/models.py
@@ -1,4 +1,16 @@
from django.db import models
+from django.contrib.auth.models import AbstractUser, Permission
+
+
+class User(AbstractUser):
+ link_to_user = models.IntegerField(null=True)
+
+ def save(self, *args, **kwargs):
+ self.is_staff = True
+ super(User, self).save(*args, **kwargs)
+ permission = Permission.objects.get(name='Can view settlement summary')
+ self.user_permissions.add(permission)
+
# Create your models here.
class SettlementSummary(models.Model):
diff --git a/khaatatest/khaata_admin/serializers.py b/khaata_admin/serializers.py
similarity index 58%
rename from khaatatest/khaata_admin/serializers.py
rename to khaata_admin/serializers.py
index 1389f7d..7d6eba9 100644
--- a/khaatatest/khaata_admin/serializers.py
+++ b/khaata_admin/serializers.py
@@ -1,12 +1,12 @@
from rest_framework import serializers
from .models import SettlementSummary
-class SettlementSummarySerializer(serializers.ModelSerializer):
+class SettlementSummarySerializer(serializers.ModelSerializer):
class Meta:
model = SettlementSummary
- fields = ['user_id',
+ fields = ['user_id',
'settlement_id', 'report_id',
- 'total_amount', 'total_num_transactions',
- 'start_date','end_date','deposit_date'
- ]
\ No newline at end of file
+ 'total_amount', 'total_num_transactions',
+ 'start_date', 'end_date', 'deposit_date'
+ ]
diff --git a/khaatatest/khaata_admin/tests.py b/khaata_admin/tests.py
similarity index 100%
rename from khaatatest/khaata_admin/tests.py
rename to khaata_admin/tests.py
diff --git a/khaatatest/khaata_admin/views.py b/khaata_admin/views.py
similarity index 100%
rename from khaatatest/khaata_admin/views.py
rename to khaata_admin/views.py
diff --git a/khaatatest/khaata_admin/admin.py b/khaatatest/khaata_admin/admin.py
deleted file mode 100644
index f260054..0000000
--- a/khaatatest/khaata_admin/admin.py
+++ /dev/null
@@ -1,15 +0,0 @@
-from django.contrib import admin
-from .models import SettlementSummary
-from django.utils.html import format_html
-
-# Register your models here.
-class SettlementSummaryAdmin(admin.ModelAdmin):
- list_display = ('user_id', 'view_records_link', 'total_num_transactions', 'settlement_id','report_id','total_amount','start_date','end_date','deposit_date')
- # list_display_links = ('transaction_id',)
- list_filter = ('user_id','settlement_id')
-
- def view_records_link(self, obj):
- url = u'../transaction/?user_id=%d&settlement_id=%s' % (obj.user_id, obj.settlement_id)
- return format_html("View Records", url=url)
-
-admin.site.register(SettlementSummary, SettlementSummaryAdmin)
\ No newline at end of file
diff --git a/khaatatest/migrations/0001_initial.py b/khaatatest/migrations/0001_initial.py
deleted file mode 100644
index 15c2836..0000000
--- a/khaatatest/migrations/0001_initial.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# Generated by Django 3.0.4 on 2020-03-15 08:23
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- initial = True
-
- dependencies = [
- ]
-
- operations = [
- migrations.CreateModel(
- name='SettlementSummary',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('user_id', models.IntegerField()),
- ('settlement_id', models.CharField(max_length=255)),
- ('start_date', models.DateField()),
- ('end_date', models.DateField()),
- ('deposit_date', models.DateField()),
- ('total_amount', models.CharField(max_length=255)),
- ('total_num_transactions', models.IntegerField()),
- ('report_id', models.CharField(max_length=255)),
- ('updated', models.DateTimeField(auto_now=True)),
- ('created', models.DateTimeField(auto_now_add=True)),
- ],
- options={
- 'ordering': ['created'],
- 'unique_together': {('settlement_id', 'report_id')},
- },
- ),
- ]
diff --git a/khaatatest/migrations/__init__.py b/khaatatest/migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/khaatatest/settings.py b/khaatatest/settings.py
index b0830ae..acbf4e5 100644
--- a/khaatatest/settings.py
+++ b/khaatatest/settings.py
@@ -38,7 +38,7 @@
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
- 'khaatatest.khaata_admin',
+ 'khaata_admin',
]
MIDDLEWARE = [
@@ -53,6 +53,8 @@
ROOT_URLCONF = 'khaatatest.urls'
+AUTH_USER_MODEL = 'khaata_admin.User'
+
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
diff --git a/khaatatest/urls.py b/khaatatest/urls.py
index 87bf4aa..3044607 100644
--- a/khaatatest/urls.py
+++ b/khaatatest/urls.py
@@ -21,7 +21,7 @@
# ]
from django.urls import include, path
from rest_framework import routers
-from khaatatest.khaata_admin import views
+from khaata_admin import views
router = routers.DefaultRouter()
# router.register(r'users', views.UserViewSet)