import email from django.contrib import admin 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 django.contrib.auth.admin import UserAdmin from django.urls import path from django.shortcuts import render from django import forms; import requests class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin): list_display=['title', 'venue', 'at_date',] class ShopAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin): list_display=['name',] class EventRouteAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin): list_display=['name',] class ShopRouteAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin): list_display=['name',] class loadUserForm(forms.Form): server_url = forms.CharField(label="Load Data from *" ,initial='https://natnats.mobilous.com/get_team_list', widget=forms.Textarea(attrs={"rows":2, "cols":95})) class UserAdminConfig(UserAdmin): search_fields = ('email', 'group', 'zekken_number', 'event_code', 'team_name', 'is_rogaining') list_filter = ('email', 'group', 'is_rogaining') ordering = ('email',) list_display = ('email', 'group','zekken_number', 'event_code', 'team_name', 'is_active', 'is_staff', 'is_rogaining') def get_urls(self): urls = super().get_urls() new_url = [path('load-users/', self.loadUsers),] return new_url + urls def loadUsers(self, request): if request.method == "POST": frm = loadUserForm(request.POST) if frm.is_valid(): print(frm.cleaned_data['server_url']) #load json from server url = frm.cleaned_data['server_url'] response = requests.get(url) data = response.json() print("-------Event code--------") print(data) print("-------Event code--------") for i in data: _exist = CustomUser.objects.filter(email=i["zekken_number"]).delete() usr = CustomUser.objects.create_user( email=i["zekken_number"], zekken_number=i['zekken_number'], is_rogaining=True, event_code=i['event_code'], team_name=i['team_name'], group='大垣-初心者', password=i['password'], is_staff= True ) form = loadUserForm() data = {'form': form} return render(request, 'admin/load_users.html', data) fieldsets = ( (None, {'fields':('email', 'group', 'zekken_number', 'event_code', 'team_name',)}), ('Permissions', {'fields':('is_staff', 'is_active', 'is_rogaining')}), ) add_fieldsets = ( (None, {'classes':('wide',), 'fields':('email', 'group','zekken_number', 'event_code', 'team_name', 'password1', 'password2')}), ) class JpnSubPerfAdmin(LeafletGeoAdmin): search_fields = ('adm0_ja', 'adm1_ja', 'adm2_ja', 'name_modified', 'area_name',) list_filter = ('adm0_ja', 'adm0_ja', 'name_modified',) ordering = ('adm0_ja',) list_display = ('adm0_ja','adm1_ja','adm2_ja' ,'name_modified', 'area_name',) class LocationAdmin(LeafletGeoAdmin): search_fields = ('location_id', 'cp', 'location_name', 'category', 'event_name','group',) list_filter = ('event_name', 'group',) ordering = ('location_id', 'cp',) list_display = ('location_id','sub_loc_id', 'cp', 'location_name', 'category', 'group', 'event_name', 'event_active', 'auto_checkin', 'checkin_radius', 'checkin_point', 'buy_point',) def tranfer_to_location(modeladmin, request, queryset): tmp_locs = templocation.objects.all(); for l in tmp_locs : found = Location.objects.filter(location_id = l.location_id).exists() if found: Location.objects.filter(location_id = l.location_id).update( sub_loc_id = l.sub_loc_id, cp = l.cp, location_name = l.location_name, category = l.category, subcategory = l.subcategory, zip = l.zip, address = l.address, prefecture = l.prefecture, area = l.area, city = l.city, latitude = l.latitude, longitude = l.longitude, photos = l.photos, videos = l.videos, webcontents = l.webcontents, status = l.status, portal = l.portal, group = l.group, phone = l.phone, fax = l.fax, email = l.email, facility = l.facility, remark = l.remark, tags = l.tags, hidden_location = l.hidden_location, auto_checkin = l.auto_checkin, checkin_radius = l.checkin_radius, checkin_point = l.checkin_point, buy_point = l.buy_point, evaluation_value = l.evaluation_value, shop_closed = l.shop_closed, shop_shutdown = l.shop_shutdown, opening_hours_mon = l.opening_hours_mon, opening_hours_tue = l.opening_hours_tue, opening_hours_wed = l.opening_hours_wed, opening_hours_thu = l.opening_hours_thu, opening_hours_fri = l.opening_hours_fri, opening_hours_sat = l.opening_hours_sat, opening_hours_sun = l.opening_hours_sun, geom=l.geom ) else: loc = Location( location_id=l.location_id, sub_loc_id = l.sub_loc_id, cp = l.cp, location_name = l.location_name, category = l.category, subcategory = l.subcategory, zip = l.zip, address = l.address, prefecture = l.prefecture, area = l.area, city = l.city, latitude = l.latitude, longitude = l.longitude, photos = l.photos, videos = l.videos, webcontents = l.webcontents, status = l.status, portal = l.portal, group = l.group, phone = l.phone, fax = l.fax, email = l.email, facility = l.facility, remark = l.remark, tags = l.tags, hidden_location = l.hidden_location, auto_checkin = l.auto_checkin, checkin_radius = l.checkin_radius, checkin_point = l.checkin_point, buy_point = l.buy_point, evaluation_value = l.evaluation_value, shop_closed = l.shop_closed, shop_shutdown = l.shop_shutdown, opening_hours_mon = l.opening_hours_mon, opening_hours_tue = l.opening_hours_tue, opening_hours_wed = l.opening_hours_wed, opening_hours_thu = l.opening_hours_thu, opening_hours_fri = l.opening_hours_fri, opening_hours_sat = l.opening_hours_sat, opening_hours_sun = l.opening_hours_sun, geom=l.geom ) loc.save() l.delete() tranfer_to_location.short_description = "Transfer all locations in temp table to location table" class TempLocationAdmin(LeafletGeoAdmin): search_fields = ('location_id', 'cp', 'location_name', 'category', 'event_name',) list_filter = ('category', 'event_name',) ordering = ('location_id', 'cp',) list_display = ('location_id','cp', 'location_name', 'category', 'event_name', 'event_active', 'auto_checkin', 'checkin_radius', 'checkin_point', 'buy_point',) actions = [tranfer_to_location,] admin.site.register(Useractions) admin.site.register(RogUser, admin.ModelAdmin) admin.site.register(Location, LocationAdmin) admin.site.register(SystemSettings, admin.ModelAdmin) admin.site.register(JoinedEvent, admin.ModelAdmin) admin.site.register(Favorite, admin.ModelAdmin) admin.site.register(TravelList, admin.ModelAdmin) admin.site.register(TravelPoint, admin.ModelAdmin) admin.site.register(Event, admin.ModelAdmin) admin.site.register(Location_line, LeafletGeoAdmin) admin.site.register(Location_polygon, LeafletGeoAdmin) admin.site.register(JpnAdminMainPerf, LeafletGeoAdmin) admin.site.register(UserTracks, LeafletGeoAdmin); #admin.site.register(JpnAdminPerf, LeafletGeoAdmin) admin.site.register(GifuAreas, LeafletGeoAdmin) admin.site.register(JpnSubPerf, JpnSubPerfAdmin) admin.site.register(ShapeLayers, admin.ModelAdmin) admin.site.register(UserUpload, admin.ModelAdmin) admin.site.register(EventUser, admin.ModelAdmin) #admin.site.register(UserUploadUser, admin.ModelAdmin) #admin.site.register(ShapeFileLocations, admin.ModelAdmin) admin.site.register(CustomUser, UserAdminConfig) admin.site.register(templocation, TempLocationAdmin) admin.site.register(GoalImages, admin.ModelAdmin)