/
settings.py
111 lines (87 loc) · 4.46 KB
/
settings.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
"""
Django-machina settings
=======================
This module define the settings of the django-machina forum framework. Each setting can be
overriden in the Django project's settings. These settings allow to customize many aspects of
the forum application, such as conversations, polls, permissions, members, ...
"""
from django.conf import settings
from django.db.models import Q
# General
FORUM_NAME = getattr(settings, 'MACHINA_FORUM_NAME', 'Machina')
MARKUP_LANGUAGE = getattr(
settings, 'MACHINA_MARKUP_LANGUAGE',
('machina.core.markdown.markdown', {'safe_mode': True, 'extras': {'break-on-newline': True}})
)
MARKUP_WIDGET = getattr(
settings, 'MACHINA_MARKUP_WIDGET', 'machina.forms.widgets.MarkdownTextareaWidget'
)
MARKUP_WIDGET_KWARGS = getattr(settings, 'MACHINA_MARKUP_WIDGET_KWARGS', {})
MARKUP_MAX_LENGTH_VALIDATOR = getattr(
settings, 'MACHINA_MARKUP_MAX_LENGTH_VALIDATOR',
'machina.core.validators.NullableMaxLengthValidator'
)
BASE_TEMPLATE_NAME = getattr(settings, 'MACHINA_BASE_TEMPLATE_NAME', '_base.html')
USER_DISPLAY_NAME_METHOD = getattr(
settings,
'MACHINA_USER_DISPLAY_NAME_METHOD',
'get_username',
)
# Forum
FORUM_IMAGE_UPLOAD_TO = getattr(settings, 'MACHINA_FORUM_IMAGE_UPLOAD_TO', 'machina/forum_images')
FORUM_IMAGE_WIDTH = getattr(settings, 'MACHINA_FORUM_IMAGE_WIDTH', 100)
FORUM_IMAGE_HEIGHT = getattr(settings, 'MACHINA_FORUM_IMAGE_HEIGHT', 70)
DEFAULT_FORUM_IMAGE_SETTINGS = {
'width': FORUM_IMAGE_WIDTH,
'height': FORUM_IMAGE_HEIGHT
}
FORUM_TOPICS_NUMBER_PER_PAGE = getattr(settings, 'MACHINA_FORUM_TOPICS_NUMBER_PER_PAGE', 20)
# Conversation
TOPIC_ANSWER_SUBJECT_PREFIX = getattr(settings, 'MACHINA_TOPIC_ANSWER_SUBJECT_PREFIX', 'Re:')
POST_CONTENT_MAX_LENGTH = getattr(settings, 'MACHINA_POST_CONTENT_MAX_LENGTH', None)
TOPIC_POSTS_NUMBER_PER_PAGE = getattr(settings, 'MACHINA_TOPIC_POSTS_NUMBER_PER_PAGE', 15)
TOPIC_REVIEW_POSTS_NUMBER = getattr(settings, 'MACHINA_TOPIC_REVIEW_POSTS_NUMBER', 10)
# Polls
POLL_MAX_OPTIONS_PER_POLL = getattr(settings, 'MACHINA_POLL_MAX_OPTIONS_PER_POLL', 30)
POLL_MAX_OPTIONS_PER_USER = getattr(settings, 'MACHINA_POLL_MAX_OPTIONS_PER_USER', 10)
# Attachments
ATTACHMENT_FILE_UPLOAD_TO = getattr(
settings, 'MACHINA_ATTACHMENT_FILE_UPLOAD_TO', 'machina/attachments'
)
ATTACHMENT_CACHE_NAME = getattr(settings, 'MACHINA_ATTACHMENT_CACHE_NAME', 'machina_attachments')
ATTACHMENT_MAX_FILES_PER_POST = getattr(settings, 'MACHINA_ATTACHMENT_MAX_FILES_PER_POST', 15)
# Member
PROFILE_AVATAR_UPLOAD_TO = getattr(
settings, 'MACHINA_PROFILE_AVATAR_UPLOAD_TO', 'machina/avatar_images'
)
PROFILE_AVATARS_ENABLED = getattr(settings, 'MACHINA_PROFILE_AVATARS_ENABLED', True)
PROFILE_AVATAR_WIDTH = getattr(settings, 'MACHINA_PROFILE_AVATAR_WIDTH', 150)
PROFILE_AVATAR_HEIGHT = getattr(settings, 'MACHINA_PROFILE_AVATAR_HEIGHT', 250)
PROFILE_AVATAR_MIN_WIDTH = getattr(settings, 'MACHINA_PROFILE_AVATAR_MIN_WIDTH', None)
PROFILE_AVATAR_MAX_WIDTH = getattr(settings, 'MACHINA_PROFILE_AVATAR_MAX_WIDTH', None)
PROFILE_AVATAR_MIN_HEIGHT = getattr(settings, 'MACHINA_PROFILE_AVATAR_MIN_HEIGHT', None)
PROFILE_AVATAR_MAX_HEIGHT = getattr(settings, 'MACHINA_PROFILE_AVATAR_MAX_HEIGHT', None)
PROFILE_AVATAR_MAX_UPLOAD_SIZE = getattr(settings, 'MACHINA_PROFILE_AVATAR_MAX_UPLOAD_SIZE', 0)
DEFAULT_AVATAR_SETTINGS = {
'width': PROFILE_AVATAR_WIDTH,
'height': PROFILE_AVATAR_HEIGHT,
'min_width': PROFILE_AVATAR_MIN_WIDTH,
'max_width': PROFILE_AVATAR_MAX_WIDTH,
'min_height': PROFILE_AVATAR_MIN_HEIGHT,
'max_height': PROFILE_AVATAR_MAX_HEIGHT,
'max_upload_size': PROFILE_AVATAR_MAX_UPLOAD_SIZE
}
PROFILE_SIGNATURE_MAX_LENGTH = getattr(settings, 'MACHINA_PROFILE_SIGNATURE_MAX_LENGTH', 255)
PROFILE_RECENT_POSTS_NUMBER = getattr(settings, 'MACHINA_PROFILE_RECENT_POSTS_NUMBER', 15)
PROFILE_POSTS_NUMBER_PER_PAGE = getattr(settings, 'MACHINA_PROFILE_POSTS_NUMBER_PER_PAGE', 15)
TRIPLE_APPROVAL_STATUS = getattr(settings, 'MACHINA_TRIPLE_APPROVAL_STATUS', False)
DEFAULT_APPROVAL_STATUS = getattr(settings, 'MACHINA_DEFAULT_APPROVAL_STATUS', None if
TRIPLE_APPROVAL_STATUS else True)
PENDING_POSTS_AS_APPROVED = getattr(settings, 'MACHINA_PENDING_POSTS_AS_APPROVED', True)
APPROVED_FILTER = Q(approved=True)
if TRIPLE_APPROVAL_STATUS and PENDING_POSTS_AS_APPROVED:
APPROVED_FILTER |= Q(approved=None)
# Permission
DEFAULT_AUTHENTICATED_USER_FORUM_PERMISSIONS = getattr(
settings, 'MACHINA_DEFAULT_AUTHENTICATED_USER_FORUM_PERMISSIONS', []
)