* Factors rendering of external links into its own template. Automagical! * Adds wagtail templates for keynotes on the front page * Migrates to Wagtail 1.6 * Migrates content pages to be a streamfield. Flexibility++. * Fixes editing of ContentPage bodies * Adds floating images to content pages * Fixes the layout of floating images * Adds anchor links to content pages. * Adds presentation link to the keynote speaker block model * LCA-ifies the schedule list * Refactors cms_pages/content_page into a new base template * cms_pages/content_page now derives from abstract_content_page * news_index_page now derives from abstract_content_page * news_page now derives from abstract_content_page.html * utility_page now uses the content_page base template * Factors out _right_floating_image.html * Themes the presentation detail page * Themes the speaker profile page. * Themes the schedule list page. * Minor work on schedule_conference.html * Themes schedule_detail.html * Replaces cradle.svg * Adds a background image to the schedule pages * Adds libravatar fallback for speaker profile images * Adds new background images (must update colophon) * Adds some magic so that we can have slightly different presentation backgrounds for different pages. * Adds the sponsor block to the bottom of the page. * Adds sponsor logos to footer. * All migrations are now in this tree * Fixes wagtail migrations * Adjusts presentation_detail to allow for miniconfs (i.e. no target audience) * Adds unpublishing to presentation detail * Adds ScheduleHeaderParagraph, which allows us to add some text to the header of schedule pages. * Adds NamedHeaderParagraph. It allows us to store header paragraphs in the CMS. * Date formatting in the schedule * First step for fixing images * Allows us to automagically load the colophon * Adds “publish changes” button. * Can login with email address
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<table class="calendar table table-bordered">
 | 
						|
  <thead>
 | 
						|
    <tr>
 | 
						|
      <th class="time"> </th>
 | 
						|
        {% for room in timetable.rooms %}
 | 
						|
          <th>{{ room.name }}</th>
 | 
						|
          {% endfor %}
 | 
						|
    </tr>
 | 
						|
  </thead>
 | 
						|
  <tbody>
 | 
						|
    {% for row in timetable %}
 | 
						|
      <tr>
 | 
						|
        <td class="time">{{ row.time|date:"h:iA" }}</td>
 | 
						|
        {% for slot in row.slots %}
 | 
						|
          <td class="slot slot-{{ slot.kind.label }}" colspan="{{ slot.colspan }}" rowspan="{{ slot.rowspan }}">
 | 
						|
            {% if slot.kind.label == "talk" or slot.kind.label == "tutorial" %}
 | 
						|
              {% if not slot.content %}
 | 
						|
              {% else %}
 | 
						|
                <span class="title">
 | 
						|
                  <a href="{% url "schedule_presentation_detail" slot.content.pk %}">{{ slot.content.title }}</a>
 | 
						|
                </span>
 | 
						|
                <span class="speaker">
 | 
						|
                  {{ slot.content.speakers|join:", " }}
 | 
						|
                </span>
 | 
						|
              {% endif %}
 | 
						|
            {% else %}
 | 
						|
              {% if slot.content_override.raw %}
 | 
						|
                {{ slot.content_override.rendered|safe }}
 | 
						|
              {% else %}
 | 
						|
                {{ slot.kind.label }}
 | 
						|
              {% endif %}
 | 
						|
            {% endif %}
 | 
						|
          </td>
 | 
						|
        {% endfor %}
 | 
						|
        {% if forloop.last %}
 | 
						|
          <td colspan="{{ timetable.rooms|length }}"></td>
 | 
						|
        {% endif %}
 | 
						|
      </tr>
 | 
						|
    {% endfor %}
 | 
						|
  </tbody>
 | 
						|
</table>
 |