update for user group

This commit is contained in:
Mohamed Nouffer
2022-09-05 19:10:39 +05:30
parent 51202e8166
commit f399cb2e57
7 changed files with 147 additions and 18 deletions

View File

@ -2,7 +2,7 @@ from django.contrib import admin
from leaflet.admin import LeafletGeoAdmin from leaflet.admin import LeafletGeoAdmin
from leaflet.admin import LeafletGeoAdminMixin from leaflet.admin import LeafletGeoAdminMixin
from leaflet_admin_list.admin import LeafletAdminListMixin from leaflet_admin_list.admin import LeafletAdminListMixin
from .models import RogUser, Location, SystemSettings, JoinedEvent, Favorite, TravelList, TravelPoint, ShapeLayers, Event, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, CustomUser, GifuAreas, UserTracks, ShapeFileLocations, templocation, UserUpload, UserUploadUser from .models import RogUser, Location, SystemSettings, JoinedEvent, Favorite, TravelList, TravelPoint, ShapeLayers, Event, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, CustomUser, GifuAreas, UserTracks, ShapeFileLocations, templocation, UserUpload, UserUploadUser, EventUser
from django.contrib.auth.admin import UserAdmin from django.contrib.auth.admin import UserAdmin
class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin): class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
@ -162,6 +162,7 @@ admin.site.register(GifuAreas, LeafletGeoAdmin)
admin.site.register(JpnSubPerf, LeafletGeoAdmin) admin.site.register(JpnSubPerf, LeafletGeoAdmin)
admin.site.register(ShapeLayers, admin.ModelAdmin) admin.site.register(ShapeLayers, admin.ModelAdmin)
admin.site.register(UserUpload, admin.ModelAdmin) admin.site.register(UserUpload, admin.ModelAdmin)
admin.site.register(EventUser, admin.ModelAdmin)
#admin.site.register(UserUploadUser, admin.ModelAdmin) #admin.site.register(UserUploadUser, admin.ModelAdmin)
#admin.site.register(ShapeFileLocations, admin.ModelAdmin) #admin.site.register(ShapeFileLocations, admin.ModelAdmin)

View File

@ -0,0 +1,24 @@
# Generated by Django 3.2.9 on 2022-08-31 04:17
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0028_alter_customuser_group'),
]
operations = [
migrations.AddField(
model_name='customuser',
name='area',
field=models.CharField(default='city', max_length=255),
preserve_default=False,
),
migrations.AddField(
model_name='customuser',
name='cities',
field=models.CharField(blank=True, max_length=255, null=True),
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 3.2.9 on 2022-08-31 05:40
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('rog', '0029_auto_20220831_1317'),
]
operations = [
migrations.RemoveField(
model_name='customuser',
name='area',
),
migrations.RemoveField(
model_name='customuser',
name='cities',
),
]

View File

@ -0,0 +1,28 @@
# Generated by Django 3.2.9 on 2022-08-31 13:44
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('rog', '0030_auto_20220831_1440'),
]
operations = [
migrations.CreateModel(
name='EventUser',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='event', to='rog.event')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user', to=settings.AUTH_USER_MODEL)),
],
),
migrations.AddField(
model_name='event',
name='user',
field=models.ManyToManyField(related_name='even', through='rog.EventUser', to=settings.AUTH_USER_MODEL),
),
]

View File

@ -413,8 +413,8 @@ EVENT_STATUS = (
) )
class Event(models.Model): class Event(models.Model):
user=models.ManyToManyField(CustomUser, through='EventUser', related_name='even')
tagname=models.CharField(_('Parameters'), max_length=512, blank=True, null=True) tagname=models.CharField(_('Parameters'), max_length=512, blank=True, null=True)
status=models.CharField(max_length=256, choices=EVENT_STATUS) status=models.CharField(max_length=256, choices=EVENT_STATUS)
price=models.IntegerField(_('Paid Amount'), default=0) price=models.IntegerField(_('Paid Amount'), default=0)
@ -428,6 +428,11 @@ class Event(models.Model):
last_updated_at=models.DateTimeField(auto_now=True) last_updated_at=models.DateTimeField(auto_now=True)
class EventUser(models.Model):
user=models.ForeignKey(CustomUser,on_delete=models.CASCADE, related_name='user')
event=models.ForeignKey(Event, on_delete=models.CASCADE, related_name='event')
ROG_STATUS = ( ROG_STATUS = (
("REGISTERED", _("Registered")), ("REGISTERED", _("Registered")),
("ACCEPTED", _("accepted")), ("ACCEPTED", _("accepted")),

View File

@ -74,7 +74,7 @@ class CreateUserSerializer(serializers.ModelSerializer):
class UserSerializer(serializers.ModelSerializer): class UserSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = CustomUser model = CustomUser
fields = ('id','email',) fields = ('id','email', 'group')
class RogUserSerializer(serializers.ModelSerializer): class RogUserSerializer(serializers.ModelSerializer):

View File

@ -55,18 +55,31 @@ def LocationsInPerf(request):
perfecture = request.GET.get('perf') perfecture = request.GET.get('perf')
is_rog = request.GET.get('rog') is_rog = request.GET.get('rog')
cat = request.GET.get('cat') cat = request.GET.get('cat')
grp = request.GET.get('grp')
perf_geom = JpnAdminMainPerf.objects.get(id=perfecture) perf_geom = JpnAdminMainPerf.objects.get(id=perfecture)
if(cat): if(cat):
if is_rog: if is_rog:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp__gt=0) if grp:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp__gt=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp__gt=0)
else: else:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp=0) if grp:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp=0, cp__gt=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp=0)
else: else:
if is_rog: if is_rog:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp__gt=0) if grp:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp__gt=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp__gt=0)
else: else:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp=0) if grp:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp=0)
serializer = LocationSerializer(locs, many=True) serializer = LocationSerializer(locs, many=True)
return JsonResponse(serializer.data, safe=False) return JsonResponse(serializer.data, safe=False)
@ -75,16 +88,26 @@ def LocationsInSubPerf(request):
subperfecture = request.GET.get('subperf') subperfecture = request.GET.get('subperf')
is_rog = request.GET.get('rog') is_rog = request.GET.get('rog')
cat = request.GET.get('cat') cat = request.GET.get('cat')
grp = request.GET.get('grp')
perf_geom = JpnSubPerf.objects.get(id=subperfecture) perf_geom = JpnSubPerf.objects.get(id=subperfecture)
if(cat): if(cat):
if is_rog: if is_rog:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp__gt=0) if grp:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp__gt=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp__gt=0)
else: else:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp=0) if grp:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, cp=0)
else: else:
if is_rog: if is_rog:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp__gt=0) if grp:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp__gt=0, cp=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp__gt=0)
else: else:
locs = Location.objects.filter(geom__within=perf_geom.geom, cp=0) locs = Location.objects.filter(geom__within=perf_geom.geom, cp=0)
serializer = LocationSerializer(locs, many=True) serializer = LocationSerializer(locs, many=True)
@ -101,6 +124,7 @@ def LocationInBound(request):
lat4 = float(request.GET.get('la4')) lat4 = float(request.GET.get('la4'))
lon4 = float(request.GET.get('ln4')) lon4 = float(request.GET.get('ln4'))
cat = request.GET.get('cat') cat = request.GET.get('cat')
grp = request.GET.get('grp')
is_rog = request.GET.get('rog') is_rog = request.GET.get('rog')
@ -108,14 +132,26 @@ def LocationInBound(request):
pl = geos.Polygon(((lon1, lat1), (lon2, lat2), (lon3, lat3), (lon4, lat4), (lon1, lat1)), srid=4326) pl = geos.Polygon(((lon1, lat1), (lon2, lat2), (lon3, lat3), (lon4, lat4), (lon1, lat1)), srid=4326)
if(cat): if(cat):
if is_rog: if is_rog:
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, cp__gt=0) if grp:
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, cp__gt=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, cp__gt=0)
else: else:
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, cp=0) if grp:
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, cp=0, cp__gt=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, cp=0)
else: else:
if is_rog: if is_rog:
locs = Location.objects.filter(geom__within=pl, event_name__isnull=True, cp__gt=0) if grp:
locs = Location.objects.filter(geom__within=pl, event_name__isnull=True, cp__gt=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=pl, event_name__isnull=True, cp__gt=0)
else: else:
locs = Location.objects.filter(geom__within=pl, event_name__isnull=True, cp=0) if grp:
locs = Location.objects.filter(geom__within=pl, event_name__isnull=True, cp=0, group__contains=grp)
else:
locs = Location.objects.filter(geom__within=pl, event_name__isnull=True, cp=0)
if len(locs) > 50: if len(locs) > 50:
return JsonResponse({"too_many_points": True}, safe=False, status=500) return JsonResponse({"too_many_points": True}, safe=False, status=500)
else: else:
@ -346,16 +382,30 @@ def CustomAreaLocations(request):
cat = request.GET.get('cat') cat = request.GET.get('cat')
name = request.GET.get('name') name = request.GET.get('name')
is_rog = request.GET.get('rog') is_rog = request.GET.get('rog')
grp = request.GET.get('grp')
if(cat != None): if(cat != None):
if is_rog: if is_rog:
locs = Location.objects.filter(event_name__isnull=False, category=cat, event_name=name, cp__gt=0) if grp:
locs = Location.objects.filter(event_name__isnull=False, category=cat, event_name=name, cp__gt=0, group__contains=grp)
else:
locs = Location.objects.filter(event_name__isnull=False, category=cat, event_name=name, cp__gt=0)
else: else:
locs = Location.objects.filter(event_name__isnull=False, category=cat, event_name=name, cp=0) if grp:
locs = Location.objects.filter(event_name__isnull=False, category=cat, event_name=name, cp=0, group__contains=grp)
else:
locs = Location.objects.filter(event_name__isnull=False, category=cat, event_name=name, cp=0)
else: else:
if is_rog: if is_rog:
locs = Location.objects.filter(event_name__isnull=False, event_name=name, cp__gt=0) if grp:
locs = Location.objects.filter(event_name__isnull=False, event_name=name, cp__gt=0, group__contains=grp)
else:
locs = Location.objects.filter(event_name__isnull=False, event_name=name, cp__gt=0)
else: else:
locs = Location.objects.filter(event_name__isnull=False, event_name=name, cp=0) if grp:
locs = Location.objects.filter(event_name__isnull=False, event_name=name, cp=0, group__contains=grp)
else:
locs = Location.objects.filter(event_name__isnull=False, event_name=name, cp=0)
serializer = LocationSerializer(locs, many=True) serializer = LocationSerializer(locs, many=True)
return JsonResponse(serializer.data, safe=False) return JsonResponse(serializer.data, safe=False)