added sync view to sync teamsnap
This commit is contained in:
@@ -14,6 +14,7 @@ urlpatterns = [
|
|||||||
path('sync_teamsnap_db', views.sync_teamsnapdb_with_teamsnapapi, name="sync with teamsnapapi"),
|
path('sync_teamsnap_db', views.sync_teamsnapdb_with_teamsnapapi, name="sync with teamsnapapi"),
|
||||||
path('sync_benchcoach_db', views.sync_teamsnapdb_to_benchcoachdb, name="sync benchcoach"),
|
path('sync_benchcoach_db', views.sync_teamsnapdb_to_benchcoachdb, name="sync benchcoach"),
|
||||||
path('update/<str:object_name>', views.update_teamsnapdb_from_teamsnapapi, name="update"),
|
path('update/<str:object_name>', views.update_teamsnapdb_from_teamsnapapi, name="update"),
|
||||||
path('send/<str:object_name>', views.send_to_benchcoach, name="send")
|
path('send/<str:object_name>', views.send_to_benchcoach, name="send"),
|
||||||
|
path('sync/', views.sync, name="sync")
|
||||||
# path('import_teamsnap', views.import_teamsnap, name="import teamsnap"),
|
# path('import_teamsnap', views.import_teamsnap, name="import teamsnap"),
|
||||||
]
|
]
|
||||||
@@ -12,7 +12,6 @@ from django.http import HttpResponse
|
|||||||
import benchcoachproject.models
|
import benchcoachproject.models
|
||||||
import benchcoach.models
|
import benchcoach.models
|
||||||
from django.http import JsonResponse
|
from django.http import JsonResponse
|
||||||
from .utils.teamsnap_object_utils import update_users, update_teams, update_events, update_members, update_locations, update_availabilities
|
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.template.loader import render_to_string
|
from django.template.loader import render_to_string
|
||||||
from .utils.import_teamsnap import update_team, update_event, update_member, update_location, update_opponent, update_availability, update_teamsnap_object
|
from .utils.import_teamsnap import update_team, update_event, update_member, update_location, update_opponent, update_availability, update_teamsnap_object
|
||||||
@@ -100,6 +99,44 @@ class TeamsnapObjTableView(View):
|
|||||||
formset = self.Formset(queryset=qs)
|
formset = self.Formset(queryset=qs)
|
||||||
return render(request, self.template, context={'formset': formset})
|
return render(request, self.template, context={'formset': formset})
|
||||||
|
|
||||||
|
@login_required()
|
||||||
|
def sync(request):
|
||||||
|
object_name = request.POST.get('object_name')
|
||||||
|
object_id = request.POST.get('object_id')
|
||||||
|
if request.POST and request.POST.get('object_name') and request.POST.get('object_id'):
|
||||||
|
TOKEN = request.user.profile.teamsnap_access_token
|
||||||
|
USER_ID = request.user.profile.teamsnap_user.id
|
||||||
|
TEAM_ID = request.user.profile.teamsnapsettings.managed_team.id
|
||||||
|
CLIENT = TeamSnap(token=TOKEN)
|
||||||
|
|
||||||
|
object_name = request.POST.get('object_name')
|
||||||
|
object_id = request.POST.get('object_id')
|
||||||
|
Object = {
|
||||||
|
obj.__name__.lower(): obj
|
||||||
|
for obj in
|
||||||
|
[Availability, Event, LineupEntry, Location, Member, Opponent, Team]
|
||||||
|
}.get(object_name)
|
||||||
|
|
||||||
|
r={}
|
||||||
|
r[Object.__name__.lower()] = []
|
||||||
|
a = Object.ApiObject.search(CLIENT, id=object_id)
|
||||||
|
if a and len(a) == 1:
|
||||||
|
obj, created = Object.update_or_create_from_teamsnap_api(a[0].data)
|
||||||
|
r[Object.__name__.lower()].append((obj, created))
|
||||||
|
|
||||||
|
for object_name, results in r.items():
|
||||||
|
if len(results) == 0:
|
||||||
|
messages.error(request, f"Error! No {object_name} objects created or updated")
|
||||||
|
else:
|
||||||
|
result = [created for obj, created in results]
|
||||||
|
messages.success(request,
|
||||||
|
f"Success! {sum(result)} {object_name} objects created, {len(result) - sum(result)} {object_name} objects updated.")
|
||||||
|
|
||||||
|
return redirect(request.POST.get('next'))
|
||||||
|
|
||||||
|
return HttpResponse('404')
|
||||||
|
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def update_teamsnapdb_from_teamsnapapi(request, object_name, object_id=None):
|
def update_teamsnapdb_from_teamsnapapi(request, object_name, object_id=None):
|
||||||
TOKEN = request.user.profile.teamsnap_access_token
|
TOKEN = request.user.profile.teamsnap_access_token
|
||||||
|
|||||||
Reference in New Issue
Block a user