forum settings in local_settings

This commit is contained in:
alafin 2009-01-17 17:56:19 +02:00
parent 18abcb087a
commit 2e1815aa07
7 changed files with 29 additions and 72 deletions

View file

@ -1,9 +1,7 @@
#from datetime import datetime
#from django.http import HttpResponseRedirect
from django.core.cache import cache
from django.conf import settings
#from django.core.urlresolvers import reverse
from apps.forum import settings as forum_settings
class LastLoginMiddleware(object):
def process_request(self, request):
cache.set(str(request.user.id), True, settings.FORUM_USER_ONLINE_TIMEOUT)
cache.set(str(request.user.id), True, forum_settings.USER_ONLINE_TIMEOUT)

View file

@ -15,6 +15,7 @@ from apps.forum.markups import mypostmarkup
from apps.forum.fields import AutoOneToOneField, ExtendedImageField
from apps.forum.subscription import notify_subscribers
from apps.forum.util import urlize, smiles
from apps.forum import settings as forum_settings
LANGUAGE_CHOICES = (
('en', 'English'),
@ -173,7 +174,7 @@ class Post(models.Model):
user = models.ForeignKey(User, related_name='posts', verbose_name=_('User'))
created = models.DateTimeField(_('Created'), blank=True)
updated = models.DateTimeField(_('Updated'), blank=True, null=True)
markup = models.CharField(_('Markup'), max_length=15, default=settings.FORUM_DEFAULT_MARKUP, choices=MARKUP_CHOICES)
markup = models.CharField(_('Markup'), max_length=15, default=forum_settings.DEFAULT_MARKUP, choices=MARKUP_CHOICES)
body = models.TextField(_('Message'))
body_html = models.TextField(_('HTML version'))
body_text = models.TextField(_('Text version'))
@ -263,15 +264,15 @@ class Profile(models.Model):
aim = models.CharField(_('AIM'), max_length=80, blank=True, default='')
yahoo = models.CharField(_('Yahoo'), max_length=80, blank=True, default='')
location = models.CharField(_('Location'), max_length=30, blank=True, default='')
signature = models.TextField(_('Signature'), blank=True, default='', max_length=settings.FORUM_SIGNATURE_MAX_LENGTH)
time_zone = models.FloatField(_('Time zone'), choices=TZ_CHOICES, default=float(settings.FORUM_DEFAULT_TIME_ZONE))
signature = models.TextField(_('Signature'), blank=True, default='', max_length=forum_settings.SIGNATURE_MAX_LENGTH)
time_zone = models.FloatField(_('Time zone'), choices=TZ_CHOICES, default=float(forum_settings.DEFAULT_TIME_ZONE))
language = models.CharField(_('Language'), max_length=3, blank=True, default='en', choices=LANGUAGE_CHOICES)
avatar = ExtendedImageField(_('Avatar'), blank=True, default='', upload_to=settings.FORUM_AVATARS_UPLOAD_TO, width=settings.FORUM_AVATAR_WIDTH, height=settings.FORUM_AVATAR_HEIGHT)
avatar = ExtendedImageField(_('Avatar'), blank=True, default='', upload_to=forum_settings.AVATARS_UPLOAD_TO, width=forum_settings.AVATAR_WIDTH, height=forum_settings.AVATAR_HEIGHT)
theme = models.CharField(_('Theme'), choices=THEME_CHOICES, max_length=80, default='')
show_avatar = models.BooleanField(_('Show avatar'), blank=True, default=True)
show_signatures = models.BooleanField(_('Show signatures'), blank=True, default=True)
privacy_permission = models.IntegerField(_('Privacy permission'), choices=PRIVACY_CHOICES, default=1)
markup = models.CharField(_('Default markup'), max_length=15, default=settings.FORUM_DEFAULT_MARKUP, choices=MARKUP_CHOICES)
markup = models.CharField(_('Default markup'), max_length=15, default=forum_settings.DEFAULT_MARKUP, choices=MARKUP_CHOICES)
class Meta:
verbose_name = _('Profile')
@ -341,7 +342,7 @@ class PrivateMessage(models.Model):
src_user = models.ForeignKey(User, verbose_name=_('Author'), related_name='src_users')
read = models.BooleanField(_('Read'), blank=True, default=False)
created = models.DateTimeField(_('Created'), blank=True)
markup = models.CharField(_('Markup'), max_length=15, default=settings.FORUM_DEFAULT_MARKUP, choices=MARKUP_CHOICES)
markup = models.CharField(_('Markup'), max_length=15, default=forum_settings.DEFAULT_MARKUP, choices=MARKUP_CHOICES)
subject = models.CharField(_('Subject'), max_length=255)
body = models.TextField(_('Message'))
body_html = models.TextField(_('HTML version'))

View file

@ -3,6 +3,8 @@ from django.conf import settings
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from apps.forum import settings as forum_settings
def notify_subscribers(post):
from apps.forum.models import Post
@ -37,4 +39,4 @@ def text_version(post):
return data
def absolute_url(uri):
return 'http://%s%s' % (settings.FORUM_HOST, uri)
return 'http://%s%s' % (forum_settings.FORUM_HOST, uri)

View file

@ -8,8 +8,8 @@
<div class="box">
<div id="brdtitle" class="inbox">
<h1><span><a href="{% url index %}">{{ "FORUM_HEADER"|forum_setting }}</a></span></h1>
<p><span>{{ "FORUM_TAGLINE"|forum_setting|safe }}</span></p>
<h1><span><a href="{% url index %}">{{ "HEADER"|forum_setting }}</a></span></h1>
<p><span>{{ "TAGLINE"|forum_setting|safe }}</span></p>
</div>
<div id="brdmenu" class="inbox">
<ul>
@ -55,7 +55,7 @@
</div>
</div>
{% if "FORUM_NOTICE"|forum_setting %}
{% if "NOTICE"|forum_setting %}
<div id="announce" class="block">
<h2><span>{% trans "Notice" %}</span></h2>
<div class="box">

View file

@ -14,6 +14,7 @@ from django.utils import dateformat
from apps.forum.models import Forum, Topic, Post, Read, PrivateMessage, Report
from apps.forum.unread import cache_unreads
from apps.forum import settings as forum_settings
register = template.Library()
@ -117,7 +118,7 @@ def has_unreads(topic, user):
"""
now = datetime.now()
delta = timedelta(seconds=settings.FORUM_READ_TIMEOUT)
delta = timedelta(seconds=forum_settings.READ_TIMEOUT)
if not user.is_authenticated():
return False
@ -144,7 +145,7 @@ def has_unreads(topic, user):
@register.filter
def forum_setting(name):
return mark_safe(getattr(settings, name, 'NOT DEFINED'))
return mark_safe(getattr(forum_settings, name, 'NOT DEFINED'))
@register.filter

View file

@ -17,6 +17,7 @@ from apps.forum.models import Category, Forum, Topic, Post, Profile, Read, Reput
from apps.forum.forms import AddPostForm, EditPostForm, UserSearchForm, PostSearchForm, ReputationForm, MailToForm, EssentialsProfileForm, PersonalProfileForm, MessagingProfileForm, PersonalityProfileForm, DisplayProfileForm, PrivacyProfileForm, ReportForm, UploadAvatarForm, CreatePMForm
from apps.forum.markups import mypostmarkup
from apps.forum.templatetags import forum_extras
from apps.forum import settings as forum_settings
@render_to('forum/index.html')
def index(request):
@ -50,7 +51,7 @@ def index(request):
}
@render_to('forum/moderate.html')
@paged('topics', settings.FORUM_FORUM_PAGE_SIZE)
@paged('topics', forum_settings.FORUM_PAGE_SIZE)
def moderate(request, forum_id):
forum = Forum.objects.get(pk=forum_id)
topics = forum.topics.filter(sticky=False).select_related()
@ -196,7 +197,7 @@ def misc(request):
}, RequestContext(request))
@render_to('forum/forum.html')
@paged('topics', settings.FORUM_FORUM_PAGE_SIZE)
@paged('topics', forum_settings.FORUM_PAGE_SIZE)
def show_forum(request, forum_id):
forum = Forum.objects.get(pk=forum_id)
topics = forum.topics.filter(sticky=False).select_related()
@ -215,7 +216,7 @@ def show_forum(request, forum_id):
@render_to('forum/topic.html')
@paged('posts', settings.FORUM_TOPIC_PAGE_SIZE)
@paged('posts', forum_settings.TOPIC_PAGE_SIZE)
def show_topic(request, topic_id):
topic = Topic.objects.select_related().get(pk=topic_id)
topic.views += 1
@ -369,8 +370,8 @@ def user(request, username):
return HttpResponseRedirect(reverse('forum_profile', args=[user.username]))
return render_to_response('forum/upload_avatar.html',
{'form': form,
'avatar_width': settings.FORUM_AVATAR_WIDTH,
'avatar_height': settings.FORUM_AVATAR_HEIGHT,
'avatar_width': forum_settings.FORUM_AVATAR_WIDTH,
'avatar_height': forum_settings.FORUM_AVATAR_HEIGHT,
}, RequestContext(request))
elif 'delete_avatar' in request.GET['action']:
profile = get_object_or_404(Profile, user=request.user)
@ -448,7 +449,7 @@ def reputation(request, username):
def show_post(request, post_id):
post = get_object_or_404(Post, pk=post_id)
count = post.topic.posts.filter(created__lt=post.created).count() + 1
page = math.ceil(count / float(settings.FORUM_TOPIC_PAGE_SIZE))
page = math.ceil(count / float(forum_settings.TOPIC_PAGE_SIZE))
url = '%s?page=%d#post-%d' % (reverse('topic', args=[post.topic.id]), page, post.id)
return HttpResponseRedirect(url)
@ -472,7 +473,7 @@ def edit_post(request, post_id):
@login_required
@render_to('forum/delete_posts.html')
@paged('posts', settings.FORUM_TOPIC_PAGE_SIZE)
@paged('posts', forum_settings.TOPIC_PAGE_SIZE)
def delete_posts(request, topic_id):
from apps.forum.templatetags.forum_extras import forum_moderated_by
@ -618,7 +619,7 @@ def open_topic(request, topic_id):
@render_to('forum/users.html')
@paged('users', settings.FORUM_USERS_PAGE_SIZE)
@paged('users', forum_settings.USERS_PAGE_SIZE)
def users(request):
users = User.objects.order_by('username')
form = UserSearchForm(request.GET)

View file

@ -24,7 +24,7 @@ DATABASE_PORT = '' # Set to empty string for default. Not used with
# although not all choices may be available on all operating systems.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'Europe/Kiew'
TIME_ZONE = 'Europe/Kiev'
# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
@ -111,52 +111,6 @@ LOGIN_URL = '/forum/account/login/'
ACCOUNT_DOMAIN = '/forum/account/'
ACCOUNT_AUTH_KEY_TIMEOUT = 60 * 60 * 24
# FORUM settings
FORUM_ADMIN_EMAIL = 'alafin@python.su'
FORUM_TOPIC_PAGE_SIZE = 10
FORUM_FORUM_PAGE_SIZE = 20
FORUM_USERS_PAGE_SIZE = 20
FORUM_AVATARS_UPLOAD_TO = 'forum/avatars'
FORUM_AVATAR_WIDTH = 100
FORUM_AVATAR_HEIGHT = 100
FORUM_DEFAULT_TIME_ZONE = 3
FORUM_SIGNATURE_MAX_LENGTH = 1024
FORUM_SIGNATURE_MAX_LINES = 3
#FORUM_QUICK_TOPICS_NUMBER = 10
#FORUM_QUICK_POSTS_NUMBER = 10
FORUM_READ_TIMEOUT = 3600 * 24 * 7
FORUM_HEADER = 'DjangoBB'
FORUM_TAGLINE = 'Django based forum engine'
FORUM_DEFAULT_MARKUP = 'bbcode'
FORUM_NOTICE = ''
FORUM_HOST = 'localhost:8000'
FORUM_USER_ONLINE_TIMEOUT = 30
# Stars
FORUM_STAR_0 = 0
FORUM_STAR_0_HALF = 10
FORUM_STAR_1 = 25
FORUM_STAR_1_HALF = 50
FORUM_STAR_2 = 75
FORUM_STAR_2_HALF = 100
FORUM_STAR_3 = 150
FORUM_STAR_3_HALF = 200
FORUM_STAR_4 = 300
FORUM_STAR_4_HALF = 500
FORUM_STAR_5 = 1000
# Smiles
FORUM_EMOTION_SMILE = '<img src="%sforum/img/smilies/smile.png">' % MEDIA_URL
FORUM_EMOTION_NEUTRAL = '<img src="%sforum/img/smilies/neutral.png">' % MEDIA_URL
FORUM_EMOTION_SAD = '<img src="%sforum/img/smilies/sad.png">' % MEDIA_URL
FORUM_EMOTION_BIG_SMILE = '<img src="%sforum/img/smilies/big_smile.png">' % MEDIA_URL
FORUM_EMOTION_YIKES = '<img src="%sforum/img/smilies/yikes.png">' % MEDIA_URL
FORUM_EMOTION_WINK = '<img src="%sforum/img/smilies/wink.png">' % MEDIA_URL
FORUM_EMOTION_HMM = '<img src="%sforum/img/smilies/hmm.png">' % MEDIA_URL
FORUM_EMOTION_TONGUE = '<img src="%sforum/img/smilies/tongue.png">' % MEDIA_URL
FORUM_EMOTION_LOL = '<img src="%sforum/img/smilies/lol.png">' % MEDIA_URL
FORUM_EMOTION_MAD = '<img src="%sforum/img/smilies/mad.png">' % MEDIA_URL
FORUM_EMOTION_ROLL = '<img src="%sforum/img/smilies/roll.png">' % MEDIA_URL
FORUM_EMOTION_COOL = '<img src="%sforum/img/smilies/cool.png">' % MEDIA_URL
try:
from local_settings import *
except ImportError: