added use load from external

This commit is contained in:
Mohamed Nouffer
2022-10-16 17:06:28 +05:30
parent 0161f351d5
commit 601c70a79b
7 changed files with 102 additions and 6 deletions

View File

@ -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 = [

View File

@ -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):

View 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'),
),
]

View File

@ -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)

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', 'is_rogaining' ,'group') fields = ('id','email', 'is_rogaining' ,'group', 'zekken_number', 'event_code', 'team_name')
class RogUserSerializer(serializers.ModelSerializer): class RogUserSerializer(serializers.ModelSerializer):

View 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 %}

View 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 %}