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

@ -1,9 +1,15 @@
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
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',]
@ -17,19 +23,58 @@ class EventRouteAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAd
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', 'is_rogaining')
search_fields = ('email', 'group', 'zekken_number', 'event_code', 'team_name', 'is_rogaining')
list_filter = ('email', 'group', 'is_rogaining')
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 = (
(None, {'fields':('email', 'group')}),
(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', 'password1', 'password2')}),
(None, {'classes':('wide',), 'fields':('email', 'group','zekken_number', 'event_code', 'team_name', 'password1', 'password2')}),
)
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_active = models.BooleanField(default=True)
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,
choices=Groups.choices,
default=Groups.GB1)

View File

@ -74,7 +74,7 @@ class CreateUserSerializer(serializers.ModelSerializer):
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = CustomUser
fields = ('id','email', 'is_rogaining' ,'group')
fields = ('id','email', 'is_rogaining' ,'group', 'zekken_number', 'event_code', 'team_name')
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 %}