bunch of models meta foo; add fccv spam protection for comments

This commit is contained in:
Sanj 2011-08-23 03:26:30 +05:30
parent 71fffbdf6a
commit 86258ec528
5 changed files with 54 additions and 3 deletions

View File

@ -4,7 +4,9 @@ from django.db.models import Q
from ox.text import smartSplit
from ox.django.fields import DictField
from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.template.loader import render_to_string
from django.contrib.contenttypes.models import ContentType
from insidepages.models import ModuleTab
def splitSearch(string):
ret = []
@ -19,7 +21,8 @@ class ItfModel(models.Model):
# related_models = []
sort_fields = []
hasComments = True
title_field = "title"
class Meta:
abstract = True
@ -30,9 +33,52 @@ class ItfModel(models.Model):
def info_dict(self):
return self.get_dict()
def get_title(self):
return self.get(self.title_field)
def get_tab(self):
ctype = ContentType.objects.get(model=self.__class__._meta.module_name)
tab = ModuleTab.objects.filter(model=ctype)[0]
return tab
def get_absolute_url(self):
return "%s?tab_id=%d&object_id=%d" % (self.get_module().get_absolute_url(), self.get_tab().id, self.id)
def get_module(self):
tab = self.get_tab()
if tab:
return tab.module
else:
return None
def get_main_image(self):
return {
'url': '',
'caption': ''
}
def get_template_path(self):
kls = self.__class__
return "modules/%s/%s.html" % (kls._meta.app_label, kls._meta.module_name)
def get_dict(self):
return self.get(self._get_fields().keys())
def insidepage_dict(self):
try:
html = render_to_string(self.get_template_path(), self.info_dict())
except:
html = "Template for this model not found."
return {
'url': self.get_absolute_url(),
'title': self.get_title(),
'main_image': self.get_main_image(),
'html': html
}
def get(self, props):
typ = type(props)
if typ == list:

View File

@ -96,7 +96,7 @@ class BestPracticeStory(models.Model):
'image': self.image.url if self.image.name != '' else ''
}
class BestPracticeFAQ(models.Model):
class BestPracticeFAQ(ItfModel):
question = models.TextField()
answer = models.TextField()

View File

@ -141,6 +141,7 @@ INSTALLED_APPS = (
'registration',
# 'itfcore',
'festival',
'insidepages',
'erang_organised',
'scriptbank',
'bestpractices',
@ -158,6 +159,7 @@ INSTALLED_APPS = (
'south',
'user',
'ckeditor',
'fccv',
)
ACCOUNT_ACTIVATION_DAYS = 30

View File

@ -17,6 +17,8 @@ urlpatterns = patterns('',
# (r'^bhangar/', include('bhangar.foo.urls')),
#(r'^search/', include('solango.urls')),
(r'^t/$', "frontpage.views.index"),
(r'm/', include('insidepages.urls')),
# ('m/(?P<module_slug>.*)', 'insidepages.views.main'),
(r'^comments/', include('django.contrib.comments.urls')),
(r'^ckeditor/', include('ckeditor.urls')),
(r'^robots.txt$', direct_to_template, {'template': 'robots.txt', 'mimetype': 'text/plain'}),

View File

@ -10,3 +10,4 @@ django-extensions
django-debug-toolbar
South
django-ckeditor
fccv #for comment-spam protection