diff --git a/rog/admin.py b/rog/admin.py index 4830dd5..bff6f6f 100644 --- a/rog/admin.py +++ b/rog/admin.py @@ -4,7 +4,7 @@ from django.shortcuts import render from leaflet.admin import LeafletGeoAdmin from leaflet.admin import LeafletGeoAdminMixin 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, EventUser, GoalImages +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, GoalImages, CheckinImages from django.contrib.auth.admin import UserAdmin from django.urls import path from django.shortcuts import render @@ -220,3 +220,4 @@ admin.site.register(EventUser, admin.ModelAdmin) admin.site.register(CustomUser, UserAdminConfig) admin.site.register(templocation, TempLocationAdmin) admin.site.register(GoalImages, admin.ModelAdmin) +admin.site.register(CheckinImages, admin.ModelAdmin) diff --git a/rog/migrations/0040_auto_20221105_1939.py b/rog/migrations/0040_auto_20221105_1939.py new file mode 100644 index 0000000..5b78fc0 --- /dev/null +++ b/rog/migrations/0040_auto_20221105_1939.py @@ -0,0 +1,32 @@ +# Generated by Django 3.2.9 on 2022-11-05 10:39 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('rog', '0039_goalimages'), + ] + + operations = [ + migrations.AlterField( + model_name='goalimages', + name='goalimage', + field=models.FileField(blank=True, null=True, upload_to='goals/%y%m%d'), + ), + migrations.CreateModel( + name='CheckinImages', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('checkinimage', models.FileField(blank=True, null=True, upload_to='checkin/%y%m%d')), + ('checkintime', models.DateTimeField(verbose_name='Goal time')), + ('team_name', models.CharField(max_length=255, verbose_name='Team name')), + ('event_code', models.CharField(max_length=255, verbose_name='event code')), + ('cp_number', models.IntegerField(verbose_name='CP numner')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/rog/models.py b/rog/models.py index aac31cd..a72fe71 100644 --- a/rog/models.py +++ b/rog/models.py @@ -209,6 +209,14 @@ class GoalImages(models.Model): event_code = models.CharField(_("event code"), max_length=255) cp_number = models.IntegerField(_("CP numner")) +class CheckinImages(models.Model): + user=models.ForeignKey(CustomUser, on_delete=models.DO_NOTHING) + checkinimage = models.FileField(upload_to='checkin/%y%m%d', blank=True, null=True) + checkintime = models.DateTimeField(_("Goal time"), auto_now=False, auto_now_add=False) + team_name = models.CharField(_("Team name"), max_length=255) + event_code = models.CharField(_("event code"), max_length=255) + cp_number = models.IntegerField(_("CP numner")) + class RogUser(models.Model): user=models.OneToOneField(CustomUser, on_delete=models.CASCADE) diff --git a/rog/serializers.py b/rog/serializers.py index 9ebc02b..e220c72 100644 --- a/rog/serializers.py +++ b/rog/serializers.py @@ -1,7 +1,7 @@ from rest_framework import serializers from rest_framework_gis.serializers import GeoFeatureModelSerializer from sqlalchemy.sql.functions import mode -from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, GifuAreas, RogUser, UserTracks, GoalImages +from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, GifuAreas, RogUser, UserTracks, GoalImages, CheckinImages from drf_extra_fields.fields import Base64ImageField #from django.contrib.auth.models import User @@ -87,6 +87,17 @@ class GolaImageSerializer(serializers.ModelSerializer): photo_url = GoalImages.goalimage.url return request.build_absolute_uri(photo_url) +class CheckinImageSerializer(serializers.ModelSerializer): + checkinimage = Base64ImageField(max_length=None, use_url=True) + class Meta: + model = CheckinImages + fields="__all__" + + def get_checkinimage_url(self, car): + request = self.context.get('request') + photo_url = CheckinImages.checkinimage.url + return request.build_absolute_uri(photo_url) + class RogUserSerializer(serializers.ModelSerializer): class Meta: diff --git a/rog/urls.py b/rog/urls.py index c4690b9..bd920c1 100644 --- a/rog/urls.py +++ b/rog/urls.py @@ -1,7 +1,7 @@ from sys import prefix from rest_framework import urlpatterns from rest_framework.routers import DefaultRouter -from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, Jpn_PerfViewSet, LocationsInPerf, SubInPerf, ExtentForSubPerf, SubPerfInMainPerf, ExtentForMainPerf, LocationsInSubPerf, CatView, RegistrationAPI, LoginAPI, UserAPI, UserActionViewset, UserMakeActionViewset, UserDestinations, UpdateOrder, LocationInBound, DeleteDestination, CustomAreaLocations, GetAllGifuAreas, CustomAreaNames, userDetials, UserTracksViewSet, CatByCity, ChangePasswordView, GoalImageViewSet +from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, Jpn_PerfViewSet, LocationsInPerf, SubInPerf, ExtentForSubPerf, SubPerfInMainPerf, ExtentForMainPerf, LocationsInSubPerf, CatView, RegistrationAPI, LoginAPI, UserAPI, UserActionViewset, UserMakeActionViewset, UserDestinations, UpdateOrder, LocationInBound, DeleteDestination, CustomAreaLocations, GetAllGifuAreas, CustomAreaNames, userDetials, UserTracksViewSet, CatByCity, ChangePasswordView, GoalImageViewSet, CheckinImageViewSet from django.urls import path, include from knox import views as knox_views @@ -17,6 +17,7 @@ router.register(prefix='perf_main', viewset=Jpn_Main_PerfViewSet, basename='main router.register(prefix='perf', viewset=Jpn_PerfViewSet, basename='perf') router.register(prefix='track', viewset=UserTracksViewSet, basename='track') router.register(prefix='goalimage', viewset=GoalImageViewSet, basename='goalimage') +router.register(prefix='checkinimage', viewset=CheckinImageViewSet, basename='checkinimage') urlpatterns = router.urls diff --git a/rog/views.py b/rog/views.py index 192bb6a..61ad512 100644 --- a/rog/views.py +++ b/rog/views.py @@ -1,8 +1,8 @@ from curses.ascii import NUL from django.core.serializers import serialize -from .models import GoalImages, Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, GifuAreas, RogUser, CustomUser, UserTracks, GoalImages +from .models import GoalImages, Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, GifuAreas, RogUser, CustomUser, UserTracks, GoalImages, CheckinImages from rest_framework import viewsets -from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, JPN_perfSerializer, JPN_sub_perSerializer, LocationCatSerializer, CreateUserSerializer, UserSerializer, LoginUserSerializer, UseractionsSerializer, UserDestinationSerializer, GifuAreaSerializer, LocationEventNameSerializer, RogUserSerializer, UserTracksSerializer, ChangePasswordSerializer, GolaImageSerializer +from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, JPN_perfSerializer, JPN_sub_perSerializer, LocationCatSerializer, CreateUserSerializer, UserSerializer, LoginUserSerializer, UseractionsSerializer, UserDestinationSerializer, GifuAreaSerializer, LocationEventNameSerializer, RogUserSerializer, UserTracksSerializer, ChangePasswordSerializer, GolaImageSerializer, CheckinImageSerializer from knox.models import AuthToken from rest_framework import viewsets, generics, status @@ -312,6 +312,20 @@ class GoalImageViewSet(viewsets.ModelViewSet): # queryset = Incident.objects.filter(is_approved=True) return queryset +class CheckinImageViewSet(viewsets.ModelViewSet): + queryset=CheckinImages.objects.all() + serializer_class=CheckinImageSerializer + # parser_classes = (MultiPartParser, JSONParser) + + def get_queryset(self): + queryset = CheckinImages.objects.all() + # dist = self.request.GET.get('dist') + # if dist != None : + # queryset = Incident.objects.filter(entity=dist, is_approved=True) + # else: + # queryset = Incident.objects.filter(is_approved=True) + return queryset + def userDetials(request): user_id = request.GET.get('user_id')