Embedded schedule view
Allow the schedule to be embedded in external platforms. Hide header and footer when embedded for easier consumption.
This commit is contained in:
		
							parent
							
								
									bf46c82fe4
								
							
						
					
					
						commit
						ef420b2d43
					
				
					 4 changed files with 30 additions and 0 deletions
				
			
		|  | @ -1 +1,8 @@ | |||
| {% extends "site_base.html" %} | ||||
| 
 | ||||
| {% load static %} | ||||
| 
 | ||||
| {% block extra_script %} | ||||
| <script src="{% static 'js/luxon.min.js' %}"></script> | ||||
| <script src="{% static 'js/schedule.js' %}" type="text/javascript"></script> | ||||
| {% endblock %} | ||||
|  |  | |||
|  | @ -103,6 +103,23 @@ $(function() { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     var embeddedView = function() { | ||||
|         var urlParams = new URLSearchParams(window.location.search); | ||||
|         if (urlParams.has('embed')) { | ||||
|             $('header').remove(); | ||||
|             $('footer').remove(); | ||||
| 
 | ||||
|             $('a').each(function() { | ||||
|                 var anchor = $(this); | ||||
|                 var path = anchor.attr('href'); | ||||
|                 if (path.startsWith('/')) { | ||||
|                     var separator = path.indexOf('?') === -1 ? '?' : '&'; | ||||
|                     anchor.attr('href', path + separator + 'embed') | ||||
|                 } | ||||
|             }) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /* Schedule Editing */ | ||||
|     $("a.edit-slot").click(function(e) { | ||||
|         $("#slotEditModal").load($(this).data("action"), function() { | ||||
|  | @ -123,6 +140,7 @@ $(function() { | |||
|     }); | ||||
| 
 | ||||
|     /* Update schedule display */ | ||||
|     embeddedView(); | ||||
|     showCurrentTab(); | ||||
|     updateScheduleGrid(); | ||||
|     updatePresentationTimes(); | ||||
|  |  | |||
							
								
								
									
										3
									
								
								vendor/symposion/schedule/views.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/symposion/schedule/views.py
									
										
									
									
										vendored
									
									
								
							|  | @ -6,6 +6,7 @@ from django.shortcuts import render, get_object_or_404, redirect | |||
| from django.urls import reverse | ||||
| from django.template import loader, Context | ||||
| from django.conf import settings | ||||
| from django.views.decorators.clickjacking import xframe_options_exempt | ||||
| 
 | ||||
| from django.contrib.auth import get_user_model | ||||
| from django.contrib import messages | ||||
|  | @ -39,6 +40,7 @@ def fetch_schedule(slug): | |||
|     return schedule | ||||
| 
 | ||||
| 
 | ||||
| @xframe_options_exempt | ||||
| def schedule_conference(request): | ||||
| 
 | ||||
|     if request.user.is_staff: | ||||
|  | @ -184,6 +186,7 @@ def schedule_slot_edit(request, slug, slot_pk): | |||
|         return render(request, "symposion/schedule/_slot_edit.html", ctx) | ||||
| 
 | ||||
| 
 | ||||
| @xframe_options_exempt | ||||
| def schedule_presentation_detail(request, pk): | ||||
| 
 | ||||
|     presentation = get_object_or_404(Presentation, pk=pk) | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/symposion/speakers/views.py
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/symposion/speakers/views.py
									
										
									
									
										vendored
									
									
								
							|  | @ -1,6 +1,7 @@ | |||
| from django.core.exceptions import ObjectDoesNotExist | ||||
| from django.http import Http404 | ||||
| from django.shortcuts import render, redirect, get_object_or_404 | ||||
| from django.views.decorators.clickjacking import xframe_options_exempt | ||||
| 
 | ||||
| from django.contrib import messages | ||||
| from django.contrib.auth.decorators import login_required | ||||
|  | @ -123,6 +124,7 @@ def speaker_edit(request, pk=None): | |||
|     }) | ||||
| 
 | ||||
| 
 | ||||
| @xframe_options_exempt | ||||
| def speaker_profile(request, pk): | ||||
|     speaker = get_object_or_404(Speaker, pk=pk) | ||||
|     presentations = speaker.all_presentations | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Joel Addison
						Joel Addison