diff --git a/boards/admin.py b/boards/admin.py --- a/boards/admin.py +++ b/boards/admin.py @@ -1,12 +1,14 @@ from django.contrib import admin from boards.models import Post, Tag, User, Ban + class PostAdmin(admin.ModelAdmin): list_display = ('id', 'title', 'text') list_filter = ('pub_time', 'tags') search_fields = ('id', 'title', 'text') + class TagAdmin(admin.ModelAdmin): list_display = ('name', 'linked') diff --git a/boards/forms.py b/boards/forms.py --- a/boards/forms.py +++ b/boards/forms.py @@ -7,15 +7,11 @@ import time from boards.models import TITLE_MAX_LENGTH, User from neboard import settings from boards import utils +import boards.settings as board_settings LAST_POST_TIME = "last_post_time" LAST_LOGIN_TIME = "last_login_time" -LOGIN_DELAY = 60 * 60 - -MAX_TEXT_LENGTH = 30000 -MAX_IMAGE_SIZE = 8 * 1024 * 1024 - class PlainErrorList(ErrorList): def __unicode__(self): @@ -73,18 +69,20 @@ class PostForm(NeboardForm): def clean_text(self): text = self.cleaned_data['text'] if text: - if len(text) > MAX_TEXT_LENGTH: + if len(text) > board_settings.MAX_TEXT_LENGTH: raise forms.ValidationError(_('Text must have less than %s ' 'characters') % - str(MAX_TEXT_LENGTH)) + str(board_settings + .MAX_TEXT_LENGTH)) return text def clean_image(self): image = self.cleaned_data['image'] if image: - if image._size > MAX_IMAGE_SIZE: - raise forms.ValidationError(_('Image must be less than %s ' - 'bytes') % str(MAX_IMAGE_SIZE)) + if image._size > board_settings.MAX_IMAGE_SIZE: + raise forms.ValidationError( + _('Image must be less than %s bytes') + % str(board_settings.MAX_IMAGE_SIZE)) return image def clean(self): @@ -233,9 +231,9 @@ class LoginForm(NeboardForm): current_delay = int(now - last_login_time) - if current_delay < LOGIN_DELAY: + if current_delay < board_settings.LOGIN_TIMEOUT: error_message = _('Wait %s minutes after last login') % str( - (LOGIN_DELAY - current_delay) / 60) + (board_settings.LOGIN_TIMEOUT - current_delay) / 60) self._errors['user_id'] = self.error_class([error_message]) can_post = False diff --git a/boards/profiler.py b/boards/profiler.py --- a/boards/profiler.py +++ b/boards/profiler.py @@ -1,8 +1,8 @@ import sys -import cProfile from cStringIO import StringIO from django.conf import settings -import line_profiler +import line_profiler + class ProfilerMiddleware(object): def process_view(self, request, callback, callback_args, callback_kwargs): diff --git a/boards/rss.py b/boards/rss.py --- a/boards/rss.py +++ b/boards/rss.py @@ -6,6 +6,7 @@ from neboard import settings __author__ = 'neko259' + # TODO Make tests for all of these class AllThreadsFeed(Feed): @@ -14,7 +15,7 @@ class AllThreadsFeed(Feed): description_template = 'boards/rss/post.html' def items(self): - return Post.objects.get_threads(order_by='-pub_time') + return Post.objects.get_threads(order_by='-pub_time') def item_title(self, item): return item.title diff --git a/boards/settings.py b/boards/settings.py --- a/boards/settings.py +++ b/boards/settings.py @@ -1,1 +1,4 @@ -CACHE_TIMEOUT = 600 # Timeout for caching, if cache is used \ No newline at end of file +CACHE_TIMEOUT = 600 # Timeout for caching, if cache is used +LOGIN_TIMEOUT = 3600 # Timeout between login tries +MAX_TEXT_LENGTH = 30000 # Max post length in characters +MAX_IMAGE_SIZE = 8 * 1024 * 1024 # Max image size