scriptbank models changes; add_form logic
This commit is contained in:
parent
036fdc60f6
commit
6572afb7c8
|
@ -50,6 +50,18 @@ class ItfModel(models.Model):
|
||||||
tab = ModuleTab.objects.filter(model=modelextra)[0]
|
tab = ModuleTab.objects.filter(model=modelextra)[0]
|
||||||
return tab
|
return tab
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_add_form(cls):
|
||||||
|
try:
|
||||||
|
formStr = cls.add_form
|
||||||
|
# cls = default_tab.model_class()
|
||||||
|
app_label = cls._meta.app_label
|
||||||
|
module = __import__(app_label + ".forms")
|
||||||
|
add_form = module.forms.__getattribute__(formStr)
|
||||||
|
return add_form
|
||||||
|
except:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def get_modelextra(self):
|
def get_modelextra(self):
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -2,9 +2,12 @@ from django.db import models
|
||||||
from tagging.fields import TagField
|
from tagging.fields import TagField
|
||||||
from django.core.paginator import Paginator, InvalidPage, EmptyPage
|
from django.core.paginator import Paginator, InvalidPage, EmptyPage
|
||||||
from app.models import ItfModel
|
from app.models import ItfModel
|
||||||
|
from django.forms import ModelForm
|
||||||
# from django.forms import
|
# from django.forms import
|
||||||
# import forms
|
# import forms
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class BestPractice(ItfModel):
|
class BestPractice(ItfModel):
|
||||||
title = models.CharField(max_length=512)
|
title = models.CharField(max_length=512)
|
||||||
story = models.TextField()
|
story = models.TextField()
|
||||||
|
@ -22,14 +25,15 @@ class BestPractice(ItfModel):
|
||||||
fts_fields = ['title', 'story', 'guideline', 'law', 'theatre', 'quick_howto']
|
fts_fields = ['title', 'story', 'guideline', 'law', 'theatre', 'quick_howto']
|
||||||
fk_filters = ['category']
|
fk_filters = ['category']
|
||||||
sort_fields = ['title']
|
sort_fields = ['title']
|
||||||
|
|
||||||
add_form = "BestPracticeForm"
|
add_form = "BestPracticeForm"
|
||||||
|
|
||||||
getters = ['info_dict', 'list_dict', 'no_of_stories']
|
getters = ['info_dict', 'list_dict', 'no_of_stories']
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return str(self.id) + ": " + self.title
|
return str(self.id) + ": " + self.title
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def info_dict(self):
|
def info_dict(self):
|
||||||
return {
|
return {
|
||||||
'id': self.id,
|
'id': self.id,
|
||||||
|
@ -90,6 +94,7 @@ class BestPractice(ItfModel):
|
||||||
def no_of_stories(self):
|
def no_of_stories(self):
|
||||||
return BestPracticeStory.objects.filter(bestpractice=self).count()
|
return BestPracticeStory.objects.filter(bestpractice=self).count()
|
||||||
|
|
||||||
|
|
||||||
class BestPracticeDownload(models.Model):
|
class BestPracticeDownload(models.Model):
|
||||||
language = models.CharField(max_length=255)
|
language = models.CharField(max_length=255)
|
||||||
fil = models.FileField(upload_to="upload/bestpractices_downloads/")
|
fil = models.FileField(upload_to="upload/bestpractices_downloads/")
|
||||||
|
|
|
@ -8,10 +8,21 @@ def main(request, module_slug):
|
||||||
m = get_object_or_404(Module, slug=module_slug)
|
m = get_object_or_404(Module, slug=module_slug)
|
||||||
tabs = m.moduletab_set.all()
|
tabs = m.moduletab_set.all()
|
||||||
default_tab = tabs[0]
|
default_tab = tabs[0]
|
||||||
|
try:
|
||||||
|
formStr = default_tab.model_class().add_form
|
||||||
|
has_add = True
|
||||||
|
add_form = default_tab.model_class().get_add_form()
|
||||||
|
except:
|
||||||
|
add_form = None
|
||||||
|
has_add = False
|
||||||
|
|
||||||
list_options = {} #get some options as GET params, etc. to potentially pass to get_list
|
list_options = {} #get some options as GET params, etc. to potentially pass to get_list
|
||||||
default_tab_list = default_tab.model_class().get_list(list_options)
|
default_tab_list = default_tab.model_class().get_list(list_options)
|
||||||
context = RequestContext(request, {
|
context = RequestContext(request, {
|
||||||
'title': m.title,
|
'title': m.title,
|
||||||
|
'about': m.about,
|
||||||
|
'has_add': has_add,
|
||||||
|
'add_form': add_form(),
|
||||||
'default_tab': tabs[0],
|
'default_tab': tabs[0],
|
||||||
'default_list': default_tab_list,
|
'default_list': default_tab_list,
|
||||||
'default_sorts': default_tab.get_dict()['sorts'],
|
'default_sorts': default_tab.get_dict()['sorts'],
|
||||||
|
@ -26,6 +37,7 @@ def get_tab(request):
|
||||||
return render_to_json_response(tab.get_dict())
|
return render_to_json_response(tab.get_dict())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_list(request):
|
def get_list(request):
|
||||||
tab_slug = request.GET.get("tab", "")
|
tab_slug = request.GET.get("tab", "")
|
||||||
tab = get_object_or_404(ModuleTab, slug=tab_slug)
|
tab = get_object_or_404(ModuleTab, slug=tab_slug)
|
||||||
|
|
|
@ -8,8 +8,7 @@ class ScriptAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Script, ScriptAdmin)
|
admin.site.register(Script, ScriptAdmin)
|
||||||
admin.site.register(LicenseAdapt)
|
admin.site.register(License)
|
||||||
admin.site.register(LicensePerform)
|
|
||||||
admin.site.register(Review)
|
admin.site.register(Review)
|
||||||
admin.site.register(Downloader)
|
admin.site.register(Downloader)
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,11 @@ GENRES = (
|
||||||
('Comedy', 'Comedy'),
|
('Comedy', 'Comedy'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
LICENSE_TYPE_CHOICES = (
|
||||||
|
('adapt', 'Adaptation License'),
|
||||||
|
('perform', 'Performance License'),
|
||||||
|
)
|
||||||
|
|
||||||
LANGUAGE_CHOICES = (
|
LANGUAGE_CHOICES = (
|
||||||
('en', 'English'),
|
('en', 'English'),
|
||||||
('hi', 'Hindi'),
|
('hi', 'Hindi'),
|
||||||
|
@ -30,8 +35,8 @@ class Script(ItfModel):
|
||||||
author = models.CharField(max_length=255)
|
author = models.CharField(max_length=255)
|
||||||
contact = models.EmailField()
|
contact = models.EmailField()
|
||||||
script = models.FileField(null=True, upload_to='upload/scripts/')
|
script = models.FileField(null=True, upload_to='upload/scripts/')
|
||||||
license_adapt = models.ForeignKey("LicensePerform", help_text="License for adaptation rights")
|
license_adapt = models.ForeignKey("License", related_name="adaptation_license", help_text="License for adaptation rights")
|
||||||
license_perform = models.ForeignKey("LicenseAdapt", help_text="License for performance rights")
|
license_perform = models.ForeignKey("License", related_name="performance_license", help_text="License for performance rights")
|
||||||
fts_fields = ['title', 'synopsis', 'author']
|
fts_fields = ['title', 'synopsis', 'author']
|
||||||
fk_fields = ['license_adapt', 'license_perform']
|
fk_fields = ['license_adapt', 'license_perform']
|
||||||
|
|
||||||
|
@ -77,18 +82,10 @@ class License(models.Model):
|
||||||
short_description = models.TextField()
|
short_description = models.TextField()
|
||||||
readable_file = models.FileField(upload_to='upload/licenses/short/')
|
readable_file = models.FileField(upload_to='upload/licenses/short/')
|
||||||
legal_file = models.FileField(upload_to='upload/licenses/legal/')
|
legal_file = models.FileField(upload_to='upload/licenses/legal/')
|
||||||
|
typ = models.CharField(choices=LICENSE_TYPE_CHOICES, max_length=32)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.letter + ": " + self.name
|
return self.typ + ": " + self.letter + ": " + self.name
|
||||||
|
|
||||||
class Meta:
|
|
||||||
abstract = True
|
|
||||||
|
|
||||||
class LicenseAdapt(License):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class LicensePerform(License):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class Review(models.Model):
|
class Review(models.Model):
|
||||||
|
|
|
@ -9,6 +9,10 @@ margin-left:auto;
|
||||||
position:relative;
|
position:relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
#leftColumn
|
#leftColumn
|
||||||
{width:296px;
|
{width:296px;
|
||||||
background-color:#FFF;
|
background-color:#FFF;
|
||||||
|
@ -395,6 +399,7 @@ position:fixed;
|
||||||
top:0px;
|
top:0px;
|
||||||
left:0px;
|
left:0px;
|
||||||
bottom:0px;
|
bottom:0px;
|
||||||
|
|
||||||
right:0px;
|
right:0px;
|
||||||
width:100%;
|
width:100%;
|
||||||
height:100%;
|
height:100%;
|
||||||
|
|
|
@ -34,14 +34,22 @@ $('.thumbsDetails').live("click", function(e) {
|
||||||
var that = this;
|
var that = this;
|
||||||
var bigImage = $(this).attr("data-bigimage");
|
var bigImage = $(this).attr("data-bigimage");
|
||||||
var $img = $('<img />').attr("src", bigImage);
|
var $img = $('<img />').attr("src", bigImage);
|
||||||
$('#lightbox, #lightboxPanel').fadeIn(400);
|
showLightbox($img);
|
||||||
$('#lightboxPanel').empty().append($img);
|
|
||||||
var title = $(this).hasAttr("title") ? $(this).attr("title") : '';
|
var title = $(this).hasAttr("title") ? $(this).attr("title") : '';
|
||||||
if (title != '') {
|
if (title != '') {
|
||||||
var $caption = $('<div />').addClass("lightboxCaption").text(title).appendTo($('#lightboxPanel'));
|
var $caption = $('<div />').addClass("lightboxCaption").text(title).appendTo($('#lightboxPanel'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function hideLightbox() {
|
||||||
|
$('#lightbox, #lightboxPanel').fadeOut(400);
|
||||||
|
}
|
||||||
|
|
||||||
|
function showLightbox($content) {
|
||||||
|
$('#lightbox, #lightboxPanel').fadeIn(400);
|
||||||
|
$('#lightboxPanel').empty().append($content);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$('.toggleNext').live("click", function(e) {
|
$('.toggleNext').live("click", function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
@ -76,7 +84,7 @@ function getLi(item) {
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
$('#lightbox').click(function() {
|
$('#lightbox').click(function() {
|
||||||
$('#lightbox, #lightboxPanel').fadeOut(400);
|
hideLightbox();
|
||||||
});
|
});
|
||||||
|
|
||||||
/* search button toggle */
|
/* search button toggle */
|
||||||
|
@ -89,6 +97,18 @@ $(function() {
|
||||||
/* search button end */
|
/* search button end */
|
||||||
|
|
||||||
|
|
||||||
|
$('#aboutBtn').click(function() {
|
||||||
|
var about = $('#moduleAbout').html();
|
||||||
|
var $content = $('<div />').addClass("aboutLightbox").html(about);
|
||||||
|
showLightbox($content);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#addBtn').click(function() {
|
||||||
|
var add = $('#moduleAdd').html();
|
||||||
|
var $content = $('<div />').addClass("addLightbox").html(add);
|
||||||
|
showLightbox($content);
|
||||||
|
});
|
||||||
|
|
||||||
// $('#listLeft ul li a').eq(0).click();
|
// $('#listLeft ul li a').eq(0).click();
|
||||||
// alert("hi");
|
// alert("hi");
|
||||||
|
|
||||||
|
@ -222,6 +242,11 @@ function doState(queryData) {
|
||||||
$('#orderBySelect').selectOption(queryData.sort);
|
$('#orderBySelect').selectOption(queryData.sort);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//FIXME TO USE ABOUT / NO ABOUT LOGIC BASED ON USER PREFS.
|
||||||
|
if (!queryData.hasOwnProperty("noAbout")) {
|
||||||
|
$('#aboutBtn').click();
|
||||||
|
}
|
||||||
|
|
||||||
if (queryData.tab == undefined || queryData.tab == '') {
|
if (queryData.tab == undefined || queryData.tab == '') {
|
||||||
// alert("foo");
|
// alert("foo");
|
||||||
var $tab = $('.defaultTab');
|
var $tab = $('.defaultTab');
|
||||||
|
|
|
@ -20,6 +20,18 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="lightbox"></div>
|
<div id="lightbox"></div>
|
||||||
|
|
||||||
|
<div id="moduleAbout" class="hidden">
|
||||||
|
{{ about }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="moduleAdd" class="hidden">
|
||||||
|
<form id="addForm" action="" method="POST" data-id="{{ default_tab.id }}">
|
||||||
|
<table>
|
||||||
|
{{ add_form.as_table }}
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="centerInner">
|
<div id="centerInner">
|
||||||
<div id="woodPng">
|
<div id="woodPng">
|
||||||
</div>
|
</div>
|
||||||
|
@ -34,10 +46,14 @@
|
||||||
|
|
||||||
<div id="searchInnerDiv">
|
<div id="searchInnerDiv">
|
||||||
<img src="/static/images/noel/search-inner.png" width="22" height="18" alt="search" class="searchInner">
|
<img src="/static/images/noel/search-inner.png" width="22" height="18" alt="search" class="searchInner">
|
||||||
|
<img src="/static/images/noel/search-inner.png" width="22" height="18" id="aboutBtn" alt="About" class="searchInner">
|
||||||
|
{% if has_add %}
|
||||||
|
<img src="/static/images/noel/search-inner.png" width="22" height="18" id="addBtn" alt="Add" class="searchInner">
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<img src="/static/images/noel/search-inner.png" width="22" height="18" alt="search" class="searchInner">
|
<img src="/static/images/noel/search-inner.png" width="22" height="18" alt="search" class="searchInner">
|
||||||
<img src="/static/images/noel/search-inner.png" width="22" height="18" alt="search" class="searchInner">
|
<img src="/static/images/noel/search-inner.png" width="22" height="18" alt="search" class="searchInner">
|
||||||
<img src="/static/images/noel/search-inner.png" width="22" height="18" alt="search" class="searchInner">
|
|
||||||
-->
|
-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user