added use load from external
This commit is contained in:
@ -52,7 +52,7 @@ INSTALLED_APPS = [
|
|||||||
'leaflet',
|
'leaflet',
|
||||||
'leaflet_admin_list',
|
'leaflet_admin_list',
|
||||||
'rog.apps.RogConfig',
|
'rog.apps.RogConfig',
|
||||||
'django_filters',
|
'django_filters'
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
|||||||
53
rog/admin.py
53
rog/admin.py
@ -1,9 +1,15 @@
|
|||||||
|
import email
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from django.shortcuts import render
|
||||||
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, EventUser
|
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
|
||||||
|
from django.urls import path
|
||||||
|
from django.shortcuts import render
|
||||||
|
from django import forms;
|
||||||
|
import requests
|
||||||
|
|
||||||
class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
|
class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
|
||||||
list_display=['title', 'venue', 'at_date',]
|
list_display=['title', 'venue', 'at_date',]
|
||||||
@ -17,19 +23,58 @@ class EventRouteAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAd
|
|||||||
class ShopRouteAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
|
class ShopRouteAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
|
||||||
list_display=['name',]
|
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):
|
class UserAdminConfig(UserAdmin):
|
||||||
search_fields = ('email', 'group', 'is_rogaining')
|
search_fields = ('email', 'group', 'zekken_number', 'event_code', 'team_name', 'is_rogaining')
|
||||||
list_filter = ('email', 'group', 'is_rogaining')
|
list_filter = ('email', 'group', 'is_rogaining')
|
||||||
ordering = ('email',)
|
ordering = ('email',)
|
||||||
list_display = ('email', 'group', 'is_active', 'is_staff', 'is_rogaining')
|
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 = (
|
fieldsets = (
|
||||||
(None, {'fields':('email', 'group')}),
|
(None, {'fields':('email', 'group', 'zekken_number', 'event_code', 'team_name',)}),
|
||||||
('Permissions', {'fields':('is_staff', 'is_active', 'is_rogaining')}),
|
('Permissions', {'fields':('is_staff', 'is_active', 'is_rogaining')}),
|
||||||
)
|
)
|
||||||
|
|
||||||
add_fieldsets = (
|
add_fieldsets = (
|
||||||
(None, {'classes':('wide',), 'fields':('email', 'group', 'password1', 'password2')}),
|
(None, {'classes':('wide',), 'fields':('email', 'group','zekken_number', 'event_code', 'team_name', 'password1', 'password2')}),
|
||||||
)
|
)
|
||||||
|
|
||||||
class JpnSubPerfAdmin(LeafletGeoAdmin):
|
class JpnSubPerfAdmin(LeafletGeoAdmin):
|
||||||
|
|||||||
28
rog/migrations/0038_auto_20221016_1950.py
Normal file
28
rog/migrations/0038_auto_20221016_1950.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Generated by Django 3.2.9 on 2022-10-16 10:50
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('rog', '0037_customuser_is_rogaining'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='customuser',
|
||||||
|
name='event_code',
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Event Code'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='customuser',
|
||||||
|
name='team_name',
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Team Name'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='customuser',
|
||||||
|
name='zekken_number',
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Zekken Number'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -187,6 +187,9 @@ class CustomUser(AbstractBaseUser, PermissionsMixin):
|
|||||||
is_staff = models.BooleanField(default=False)
|
is_staff = models.BooleanField(default=False)
|
||||||
is_active = models.BooleanField(default=True)
|
is_active = models.BooleanField(default=True)
|
||||||
is_rogaining = models.BooleanField(default=False)
|
is_rogaining = models.BooleanField(default=False)
|
||||||
|
zekken_number = models.CharField(_("Zekken Number"), max_length=255, blank=True, null=True)
|
||||||
|
event_code = models.CharField(_("Event Code"), max_length=255, blank=True, null=True)
|
||||||
|
team_name = models.CharField(_("Team Name"), max_length=255, blank=True, null=True)
|
||||||
group = models.CharField(max_length=255,
|
group = models.CharField(max_length=255,
|
||||||
choices=Groups.choices,
|
choices=Groups.choices,
|
||||||
default=Groups.GB1)
|
default=Groups.GB1)
|
||||||
|
|||||||
@ -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', 'is_rogaining' ,'group')
|
fields = ('id','email', 'is_rogaining' ,'group', 'zekken_number', 'event_code', 'team_name')
|
||||||
|
|
||||||
|
|
||||||
class RogUserSerializer(serializers.ModelSerializer):
|
class RogUserSerializer(serializers.ModelSerializer):
|
||||||
|
|||||||
13
rog/templates/admin/load_users.html
Normal file
13
rog/templates/admin/load_users.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{% extends 'admin/base.html' %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div style="margin:auto; width:50%; padding:10px; border:0px solid green;">
|
||||||
|
<form action="." method="POST" enctype="multipart/form-data">
|
||||||
|
{{ form.as_p }}
|
||||||
|
{% csrf_token %}
|
||||||
|
<button style="float:right; padding-left:40px; padding-right:40px;" type="submit">Load Users</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
7
rog/templates/admin/rog/customuser/change_list.html
Normal file
7
rog/templates/admin/rog/customuser/change_list.html
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{% extends 'admin/change_list.html' %}
|
||||||
|
{% load static %}
|
||||||
|
{% block content %}
|
||||||
|
<a href="load-users/">Go to Load users</a>
|
||||||
|
{{ block.super }}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user