implemented speaker profiles
This commit is contained in:
		
							parent
							
								
									5944bb5577
								
							
						
					
					
						commit
						9e794bd66a
					
				
					 3 changed files with 66 additions and 17 deletions
				
			
		|  | @ -98,24 +98,12 @@ def speaker_edit(request, pk=None): | ||||||
|     }) |     }) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def speaker_profile(request, pk, template_name="speakers/speaker_profile.html", extra_context=None): | def speaker_profile(request, pk): | ||||||
|      |  | ||||||
|     if extra_context is None: |  | ||||||
|         extra_context = {} |  | ||||||
|      |  | ||||||
|     speaker = get_object_or_404(Speaker, pk=pk) |     speaker = get_object_or_404(Speaker, pk=pk) | ||||||
|      |      | ||||||
|     # schedule may not be installed so we need to check for sessions |     if not speaker.presentations and not request.user.is_staff: | ||||||
|     if hasattr(speaker, "sessions"): |  | ||||||
|         sessions = speaker.sessions.exclude(slot=None).order_by("slot__start") |  | ||||||
|     else: |  | ||||||
|         sessions = [] |  | ||||||
|      |  | ||||||
|     if not sessions: |  | ||||||
|         raise Http404() |         raise Http404() | ||||||
|      |      | ||||||
|     return render_to_response(template_name, dict({ |     return render(request, "speakers/speaker_profile.html", { | ||||||
|         "speaker": speaker, |         "speaker": speaker, | ||||||
|         "sessions": sessions, |     }) | ||||||
|         "timezone": settings.SCHEDULE_TIMEZONE, |  | ||||||
|     }, **extra_context), context_instance=RequestContext(request)) |  | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ | ||||||
| 
 | 
 | ||||||
|     <h2> |     <h2> | ||||||
|         {% for speaker in presentation.speakers %} |         {% for speaker in presentation.speakers %} | ||||||
|             {{ speaker }} |             <a href="{% url speaker_profile speaker.pk %}">{{ speaker }}</a> | ||||||
|         {% if not forloop.last %}, {% endif %}{% endfor %} |         {% if not forloop.last %}, {% endif %}{% endfor %} | ||||||
|     </h2> |     </h2> | ||||||
|      |      | ||||||
|  |  | ||||||
							
								
								
									
										61
									
								
								symposion/templates/speakers/speaker_profile.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								symposion/templates/speakers/speaker_profile.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,61 @@ | ||||||
|  | {% extends "site_base.html" %} | ||||||
|  | 
 | ||||||
|  | {% load i18n %} | ||||||
|  | {% load thumbnail %} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | {% block page_title %}{% endblock %} | ||||||
|  | 
 | ||||||
|  | {% block body %} | ||||||
|  |     <div class="row"> | ||||||
|  |         <div class="span2"> | ||||||
|  |             {% if speaker.photo %} | ||||||
|  |                 <img src="{% thumbnail speaker.photo '128x128' %}" alt="{{ speaker.name }}" /> | ||||||
|  |             {% endif %} | ||||||
|  |         </div> | ||||||
|  |         <div class="span6"> | ||||||
|  |             {% if speaker.user == request.user or request.user.is_staff %} | ||||||
|  |                 <a class="btn pull-right" href="{% url speaker_edit speaker.pk %}">Edit</a> | ||||||
|  |             {% endif %} | ||||||
|  |             <h1>{{ speaker.name }}</h1> | ||||||
|  |             <div class="bio">{{ speaker.biography|safe }}</div> | ||||||
|  |              | ||||||
|  |             <h2>Presentations</h2> | ||||||
|  |             {% for presentation in speaker.presentations.all %} | ||||||
|  |                 <h3><a href="{% url schedule_presentation_detail presentation.pk %}">{{ presentation.title }}</a></h3> | ||||||
|  |                 {% if presentation.slot %} | ||||||
|  |                     <p> | ||||||
|  |                         {{ presentation.slot.day.date|date:"l" }} | ||||||
|  |                         {{ presentation.slot.start}}–{{ presentation.slot.end }} | ||||||
|  |                         in | ||||||
|  |                         {{ presentation.slot.rooms|join:", " }} | ||||||
|  |                     </p> | ||||||
|  |                 {% endif %} | ||||||
|  |             {% empty %} | ||||||
|  |                 <p>No presentations. This page is only visible to staff until there is a presentation.<p> | ||||||
|  |             {% endfor %} | ||||||
|  |         </div> | ||||||
|  |     </div> | ||||||
|  | 
 | ||||||
|  | {% endblock %} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | {% comment %} | ||||||
|  | 
 | ||||||
|  | {% block content %} | ||||||
|  |      | ||||||
|  |     {% if sessions %} | ||||||
|  |         <h3>Presentations</h3> | ||||||
|  |          | ||||||
|  |         <dl class="sessions"> | ||||||
|  |             {% for session in sessions %} | ||||||
|  |                 <dt>{{ session.slot.start|localtime:timezone|date:"F jS" }} {{ session.slot.start|localtime:timezone|date:"P" }} – {{ session.slot.end|localtime:timezone|date:"P" }}</dt> | ||||||
|  |                 <dd><a href="{% url schedule_presentation session.id %}">{{ session.title }}</a></dd> | ||||||
|  |             {% endfor %} | ||||||
|  |         </dl> | ||||||
|  |     {% endif %} | ||||||
|  | {% endblock %} | ||||||
|  | 
 | ||||||
|  | {% endcomment %} | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 James Tauber
						James Tauber