forum settings in local_settings
This commit is contained in:
parent
18abcb087a
commit
2e1815aa07
7 changed files with 29 additions and 72 deletions
|
@ -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)
|
|
@ -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'))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
48
settings.py
48
settings.py
|
@ -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:
|
||||
|
|
Reference in a new issue