added bestpractices to festival site
This commit is contained in:
parent
773ff4ddc3
commit
118b35c8ae
|
@ -77,6 +77,10 @@ class BestPractice(ItfModel):
|
|||
def no_of_stories(self):
|
||||
return BestPracticeStory.objects.filter(bestpractice=self).count()
|
||||
|
||||
class BestPracticeDownload(models.Model):
|
||||
language = models.CharField(max_length=255)
|
||||
fil = models.FileField(upload_to="upload/bestpractices_downloads/")
|
||||
|
||||
|
||||
class BestPracticeStory(models.Model):
|
||||
text = models.TextField()
|
||||
|
|
0
itf/bestpractices/templatetags/__init__.py
Normal file
0
itf/bestpractices/templatetags/__init__.py
Normal file
18
itf/bestpractices/templatetags/guidelines.py
Normal file
18
itf/bestpractices/templatetags/guidelines.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
from django import template
|
||||
from bestpractices.models import BestPractice
|
||||
import re
|
||||
|
||||
register = template.Library()
|
||||
|
||||
def link_bps(value):
|
||||
r = r'BP\:[0-9][0-9]?'
|
||||
matches = re.findall(r, value)
|
||||
for match in matches:
|
||||
id = int(match.replace("BP:", "").strip())
|
||||
bp = BestPractice.objects.get(pk=id)
|
||||
title = bp.title
|
||||
html = "<a class='bpRelated' href='/itf/bestpractices/stories#%d' title='View related Best Practice story'>%s</a>" % (id, title,)
|
||||
value = value.replace(match, html, 1)
|
||||
return value
|
||||
|
||||
register.filter("link_bps", link_bps)
|
|
@ -2,6 +2,7 @@
|
|||
from django.shortcuts import render_to_response, get_object_or_404
|
||||
from django.http import HttpResponse
|
||||
from festival.models import *
|
||||
from bestpractices.models import *
|
||||
from utils import validateEmail
|
||||
from forms import MeetingCommentForm
|
||||
import random
|
||||
|
@ -179,4 +180,39 @@ def email_signups(request):
|
|||
def video(request, video_id):
|
||||
video = get_object_or_404(Video, id=video_id)
|
||||
return render_to_response("video.html", {'video': video})
|
||||
|
||||
def bestpractices(request):
|
||||
return render_to_response("bestpractices.html", {
|
||||
'downloads': BestPracticeDownload.objects.all()
|
||||
})
|
||||
|
||||
def bpguidelines(request):
|
||||
return render_to_response("bpguidelines.html", {
|
||||
'guidelines': Guideline.objects.all()
|
||||
})
|
||||
|
||||
def bpstories(request):
|
||||
stories = []
|
||||
for bp in BestPractice.objects.all():
|
||||
stories.append({
|
||||
'id': bp.id,
|
||||
'title': bp.title
|
||||
})
|
||||
return render_to_response("bpstories.html", {
|
||||
'stories': stories
|
||||
})
|
||||
|
||||
def bpglossary(request):
|
||||
return render_to_response("bpglossary.html", {
|
||||
'terms': Glossary.objects.all()
|
||||
})
|
||||
|
||||
def bpstory(request, story_id):
|
||||
story_dict = BestPractice.objects.get(pk=story_id).info_dict()
|
||||
return render_to_response("bpstory.html", story_dict)
|
||||
|
||||
def bpguideline(request, guideline_id):
|
||||
guideline_dict = Guideline.objects.get(pk=guideline_id).get_dict()
|
||||
return render_to_response("bpguideline.html", guideline_dict)
|
||||
|
||||
|
||||
|
|
53
itf/static/css/bestpractices.css
Normal file
53
itf/static/css/bestpractices.css
Normal file
|
@ -0,0 +1,53 @@
|
|||
#bpTabs ul li {
|
||||
list-style-type: none;
|
||||
font-size: 16px;
|
||||
padding: 6px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#bpTabs ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#bpTabs ul li a {
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bpItem {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.glossaryTerm {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.bpContent {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.bpContent a {
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bpAjax {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.itfInfoSub {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bpRelated {
|
||||
color: #393939 !important;
|
||||
font-weight: normal !important;
|
||||
font-style: italic;
|
||||
margin-left: 12px;
|
||||
}
|
|
@ -17,6 +17,11 @@
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.itfBox {
|
||||
padding: 4px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.OxCommentWrapper {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
}
|
||||
|
||||
#tabs {
|
||||
font-family: Arial, Georgia, Helvetica, mono !important;
|
||||
font-family: Arial, Georgia, Helvetica, sans-serif !important;
|
||||
}
|
||||
|
||||
#tabs ul {
|
||||
|
|
|
@ -67,7 +67,7 @@ Ox.ItfBox = function(boxData) {
|
|||
'id': boxData.itfId,
|
||||
'title': boxData.title
|
||||
};
|
||||
var that = app.$ui[boxData.itfId] = new Ox.Element(options, self);
|
||||
var that = app.$ui[boxData.itfId] = new Ox.Element(options, self).addClass("itfBox");
|
||||
var $titlebar = new Ox.Bar({
|
||||
orientation: 'horizontal',
|
||||
size: 24
|
||||
|
|
94
itf/templates/bestpractices.html
Normal file
94
itf/templates/bestpractices.html
Normal file
|
@ -0,0 +1,94 @@
|
|||
{% extends 'festival_wireframe.html' %}
|
||||
|
||||
{% block title %}
|
||||
India Theatre Forum - Best Practices
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_head %}
|
||||
<link rel="stylesheet" href="/static/css/bestpractices.css" />
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.bpItem a').click(function(e) {
|
||||
e.preventDefault();
|
||||
var id = $(this).parent().attr("data-id");
|
||||
if ($(this).parent().find(".bpAjax").is(":visible")) {
|
||||
$('.bpAjax').slideUp("fast", function() {
|
||||
$(this).remove();
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if ($('.bpAjax').is(":visible")) {
|
||||
$('.bpAjax').slideUp("fast", function() {
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
var container = $('<div />').addClass("bpAjax").text("Loading...");
|
||||
$(this).parent().append(container);
|
||||
var url = $(this).attr("href");
|
||||
$.get(url, {}, function(response) {
|
||||
container.hide().html(response).slideDown("fast", function() {
|
||||
var top = container.parent().position().top;
|
||||
$('html').scrollTop(top - 3);
|
||||
location.hash = id;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
if (location.hash != '') {
|
||||
var id = location.hash.replace("#", "");
|
||||
var aElem = $('div[data-id=' + id + ']').find('a');
|
||||
aElem.click();
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block leftCol %}
|
||||
<ul id="leftNav">
|
||||
<li><a href="/itf/">Home</a></li>
|
||||
<li><a href="/itf/meetings">Activities</a><div class="helper">ITF Meetings - transcripts, audio, discussions.</div></li>
|
||||
<li><a href="/itf/projects">Projects</a><div class="helper">Projects undertaken by the ITF...</div></li>
|
||||
<li><a href="/erang">e-Rang</a><div class="helper">The theatre newsletter...</div></li>
|
||||
<li><a href="/itf/resources">Resources</a><div class="helper">Downloadable reading materials and resources</div></li>
|
||||
<li><a href="/itf/surveys">Surveys</a><div class="helper">Surveys about theatre in India...</div></li>
|
||||
<li><a href="/itf/publications">Publications</a><div class="helper">Publications by the ITF..</div></li>
|
||||
<li><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
<li class="currentNav"><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices</div></li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block centerCol %}
|
||||
<div id="centerContent">
|
||||
<h3>Best Practices</h3>
|
||||
<div class="centerText">
|
||||
{% block bpTabs %}
|
||||
<div id="bpTabs">
|
||||
<ul>
|
||||
<li class="bpCurrentTab">Intro</li>
|
||||
<li><a href="/itf/bestpractices/stories">Stories</a></li>
|
||||
<li><a href="/itf/bestpractices/guidelines">Guidelines</a></li>
|
||||
<li><a href="/itf/bestpractices/glossary">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
{% endblock %}
|
||||
{% block bpContent %}
|
||||
<div id="intro">
|
||||
Best practices - under construction
|
||||
|
||||
</div>
|
||||
<div class="bpContent">
|
||||
Download Booklet: <br /><br />
|
||||
{% for d in downloads %}
|
||||
<div class="bpDownload">
|
||||
<a target="_blank" href="d.fil.url" title="Click link to download PDF">{{ d.language }}</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
29
itf/templates/bpglossary.html
Normal file
29
itf/templates/bpglossary.html
Normal file
|
@ -0,0 +1,29 @@
|
|||
{% extends 'bestpractices.html' %}
|
||||
|
||||
{% block bpTabs %}
|
||||
<div id="bpTabs">
|
||||
<ul>
|
||||
<li><a href="/itf/bestpractices">Intro</a></li>
|
||||
<li><a href="/itf/bestpractices/stories">Stories</a></li>
|
||||
<li><a href="/itf/bestpractices/guidelines">Guidelines</a></li>
|
||||
<li class="bpCurrentTab">Glossary</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
{% endblock %}
|
||||
|
||||
{% block bpContent %}
|
||||
<div class="bpContent">
|
||||
{% for t in terms %}
|
||||
<div class="bpItem">
|
||||
<div class="glossaryTerm">
|
||||
{{t.term}}
|
||||
</div>
|
||||
<div class="glossaryDefinition">
|
||||
{{t.definition}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock %}
|
6
itf/templates/bpguideline.html
Normal file
6
itf/templates/bpguideline.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
{% load guidelines %}
|
||||
<div class="itfInfo">
|
||||
{% autoescape off %}
|
||||
{{ text|link_bps|linebreaksbr }}
|
||||
{% endautoescape %}
|
||||
</div>
|
23
itf/templates/bpguidelines.html
Normal file
23
itf/templates/bpguidelines.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
{% extends 'bestpractices.html' %}
|
||||
|
||||
{% block bpTabs %}
|
||||
<div id="bpTabs">
|
||||
<ul>
|
||||
<li><a href="/itf/bestpractices">Intro</a></li>
|
||||
<li><a href="/itf/bestpractices/stories">Stories</a></li>
|
||||
<li class="bpCurrentTab">Guidelines</li>
|
||||
<li><a href="/itf/bestpractices/glossary">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
{% endblock %}
|
||||
|
||||
{% block bpContent %}
|
||||
<div class="bpContent">
|
||||
{% for g in guidelines %}
|
||||
<div class="bpItem" data-id="{{g.id}}">
|
||||
<a href="/itf/bestpractices/guideline/{{g.id}}">{{g.title}}</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock %}
|
23
itf/templates/bpstories.html
Normal file
23
itf/templates/bpstories.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
{% extends 'bestpractices.html' %}
|
||||
|
||||
{% block bpTabs %}
|
||||
<div id="bpTabs">
|
||||
<ul>
|
||||
<li><a href="/itf/bestpractices">Intro</a></li>
|
||||
<li class="bpCurrentTab">Stories</li>
|
||||
<li><a href="/itf/bestpractices/guidelines">Guidelines</a></li>
|
||||
<li><a href="/itf/bestpractices/glossary">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
{% endblock %}
|
||||
|
||||
{% block bpContent %}
|
||||
<div class="bpContent">
|
||||
{% for s in stories %}
|
||||
<div class="bpStory bpItem" data-id="{{s.id}}">
|
||||
<a href="/itf/bestpractices/story/{{s.id}}">{{ s.title }}</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock %}
|
14
itf/templates/bpstory.html
Normal file
14
itf/templates/bpstory.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
<div class="itfInfo">
|
||||
{% for s in stories %}
|
||||
<span class="itfInfoSub">Story {{forloop.counter}}: </span><span class="ifInfoInfo">{{ s.text|linebreaksbr }}</span>
|
||||
<img class="itfInfoImg" src="{{ s.image }}" />
|
||||
<br /><br />
|
||||
{% endfor %}
|
||||
<span class="itfInfoSub">Law: </span><span class="itfInfoInfo">{{ law|linebreaksbr }}</span>
|
||||
{% if law_image %}
|
||||
<img class="itfInfoImg" src="{{ law_image }}" />
|
||||
{% endif %}
|
||||
<br /><br />
|
||||
<span class="itfInfoSub">Relevance to Theatre: </span><span class="itfInfoInfo">{{ theatre|linebreaksbr }}</span><br /><br />
|
||||
<span class="itfInfoSub">Quick Howto: </span><span class="itfInfoInfo">{{ quick_howto|linebreaksbr }}</span><br /><br />
|
||||
</div>
|
|
@ -36,6 +36,7 @@
|
|||
<li><a href="/erang">eRang</a><div class="helper">The theatre newsletter...</div></li>
|
||||
<li><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
<li><a href="/itf/resources">Resources</a><div class="helper">Downloadable reading materials and resources</div></li>
|
||||
<li><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices publication</div></li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
<li><a href="/itf/surveys">Surveys</a><div class="helper">Surveys about theatre in India...</div></li>
|
||||
<li><a href="/itf/publications">Publications</a><div class="helper">Publications by the ITF..</div></li>
|
||||
<li><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
|
||||
<li><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices publication</div></li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
|
|
@ -14,6 +14,7 @@ India Theatre Forum - Home
|
|||
<li><a href="/itf/surveys">Surveys</a><div class="helper">Surveys about theatre in India...</div></li>
|
||||
<li><a href="/itf/publications">Publications</a><div class="helper">Publications by the ITF..</div></li>
|
||||
<li><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
<li><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices publication</div></li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
|
|
@ -20,6 +20,7 @@ India Theatre Forum - Activities
|
|||
<li><a href="/itf/surveys">Surveys</a><div class="helper">Surveys about theatre in India...</div></li>
|
||||
<li><a href="/itf/publications">Publications</a><div class="helper">Publications by the ITF..</div></li>
|
||||
<li><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
<li><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices publication</div></li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
<li><a href="/itf/surveys">Surveys</a><div class="helper">Surveys about theatre in India...</div></li>
|
||||
<li><a href="/itf/publications">Publications</a><div class="helper">Publications by the ITF..</div></li>
|
||||
<li class="currentNav"><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
<li><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices publication</div></li>
|
||||
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
|
|
@ -14,6 +14,7 @@ India Theatre Forum - Projects
|
|||
<li><a href="/itf/surveys">Surveys</a><div class="helper">Surveys about theatre in India...</div></li>
|
||||
<li><a href="/itf/publications">Publications</a><div class="helper">Publications by the ITF..</div></li>
|
||||
<li><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
<li><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices publication</div></li>
|
||||
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
|
|
@ -24,6 +24,7 @@ India Theatre Forum - Publications
|
|||
<li><a href="/itf/surveys">Surveys</a><div class="helper">Surveys about theatre in India...</div></li>
|
||||
<li class="currentNav"><a href="/itf/publications">Publications</a><div class="helper">Publications by the ITF..</div></li>
|
||||
<li><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
<li><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices publication</div></li>
|
||||
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
<li><a href="/itf/surveys">Surveys</a><div class="helper">Surveys about theatre in India...</div></li>
|
||||
<li><a href="/itf/publications">Publications</a><div class="helper">Publications by the ITF..</div></li>
|
||||
<li><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
<li><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices publication</div></li>
|
||||
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<li class="currentNav"><a href="/itf/surveys">Surveys</a><div class="helper">Surveys about theatre in India...</div></li>
|
||||
<li><a href="/itf/publications">Publications</a><div class="helper">Publications by the ITF..</div></li>
|
||||
<li><a href="/itf/people">Participants</a><div class="helper">A list of participants for all ITF meetings</div></li>
|
||||
<li><a href="/itf/bestpractices">Best Practices</a><div class="helper">Best Practices publication</div></li>
|
||||
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
|
16
itf/urls.py
16
itf/urls.py
|
@ -22,20 +22,8 @@ urlpatterns = patterns('',
|
|||
(r'api/', 'api.views.api'),
|
||||
(r'jsdoc/', 'api.views.jsdoc'),
|
||||
(r'site.json', 'app.views.site_json'),
|
||||
(r'^itf/$', 'festival.views.home'),
|
||||
(r'^itf/wireframe', 'festival.views.wireframe'),
|
||||
(r'^itf/projects', 'festival.views.projects'),
|
||||
(r'^itf/erang', 'festival.views.erang'),
|
||||
(r'^itf/publications', 'festival.views.publications'),
|
||||
(r'^itf/surveys', 'festival.views.surveys'),
|
||||
(r'^itf/project/(?P<project_id>\d+)/$', 'festival.views.project'),
|
||||
(r'^itf/resources', 'festival.views.resources'),
|
||||
(r'^itf/meetings', 'festival.views.meetings'),
|
||||
(r'^itf/meeting/comment/$', 'festival.views.meeting_comment'),
|
||||
(r'^itf/people', 'festival.views.people'),
|
||||
(r'^itf/save_email', 'festival.views.save_email'),
|
||||
(r'^itf/meeting/(?P<meeting_id>\d+)/$', 'festival.views.meeting_details'),
|
||||
(r'^itf/video/(?P<video_id>\d+)$', 'festival.views.video', ),
|
||||
(r'^itf/', include('festival.urls')),
|
||||
|
||||
(r'^admin/(.*)', admin.site.root),
|
||||
('^getLanguages', 'itfcore.views.getLanguages'),
|
||||
# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
|
||||
|
|
Loading…
Reference in New Issue
Block a user