from forum import settings
-from django.conf import settings as djsettings
def application_settings(context):
- my_settings = {
- 'APP_TITLE' : settings.APP_TITLE,
- 'APP_SHORT_NAME' : settings.APP_SHORT_NAME,
- 'SHOW_WELCOME_BOX' : settings.SHOW_WELCOME_BOX,
- 'APP_URL' : settings.APP_URL,
- 'APP_KEYWORDS' : settings.APP_KEYWORDS,
- 'APP_DESCRIPTION' : settings.APP_DESCRIPTION,
- 'APP_INTRO' : settings.APP_INTRO,
- 'APP_LOGO' : settings.APP_LOGO,
- 'EMAIL_VALIDATION': 'off',
- 'SUPPORT_URL': settings.SUPPORT_URL,
- 'CONTACT_URL': settings.CONTACT_URL,
- 'FORUM_SCRIPT_ALIAS': djsettings.FORUM_SCRIPT_ALIAS,
- 'LANGUAGE_CODE': djsettings.LANGUAGE_CODE,
- 'GOOGLE_SITEMAP_CODE':settings.GOOGLE_SITEMAP_CODE,
- 'GOOGLE_ANALYTICS_KEY':settings.GOOGLE_ANALYTICS_KEY,
- 'WIKI_ON':settings.WIKI_ON,
- 'OSQA_SKIN':djsettings.OSQA_DEFAULT_SKIN,
- 'APP_FAVICON':settings.APP_FAVICON,
- 'OSQA_VERSION': settings.OSQA_VERSION,
- 'ADMIN_MEDIA_PREFIX': djsettings.ADMIN_MEDIA_PREFIX,
- 'SVN_REVISION': settings.SVN_REVISION,
- }
- return {'settings':my_settings}
+ return {'settings': settings}
def auth_processor(request):
"""
APP_URL = djsettings.APP_URL
FORUM_SCRIPT_ALIAS = djsettings.FORUM_SCRIPT_ALIAS
-
-STATIC_PAGE_REGISTRY = Setting('STATIC_PAGE_REGISTRY', {})
+OSQA_SKIN = djsettings.OSQA_DEFAULT_SKIN
+LANGUAGE_CODE = djsettings.LANGUAGE_CODE
+ADMIN_MEDIA_PREFIX = djsettings.ADMIN_MEDIA_PREFIX
from basic import *
from form import *
from moderation import *
from users import *
+from static import *
BADGES_SET = SettingSet('badges', _('Badges config'), _("Configure badges on your OSQA site."), 500)
class SettingsSetForm(forms.Form):
def __init__(self, set, data=None, *args, **kwargs):
if data is None:
- data = dict([(setting.name, setting.value) for setting in set])
+ initial = dict([(setting.name, setting.value) for setting in set])
+ else:
+ initial = None
- super(SettingsSetForm, self).__init__(data, *args, **kwargs)
+ super(SettingsSetForm, self).__init__(data, initial=initial, *args, **kwargs)
for setting in set:
if isinstance(setting, (Setting.emulators.get(str, DummySetting), Setting.emulators.get(unicode, DummySetting))):
--- /dev/null
+from base import Setting, SettingSet
+from django.forms.widgets import Textarea
+from django.utils.translation import ugettext_lazy as _
+
+STATIC_PAGE_REGISTRY = Setting('STATIC_PAGE_REGISTRY', {})
+
+CSS_SET = SettingSet('css', 'Custom CSS', "Define some custom css you can use to override the default css.", 2000)
+
+USE_CUSTOM_CSS = Setting('USE_CUSTOM_CSS', False, CSS_SET, dict(
+label = _("Use custom CSS"),
+help_text = _("Do you want to use custom CSS."),
+required=False))
+
+CUSTOM_CSS = Setting('CUSTOM_CSS', '', CSS_SET, dict(
+label = _("Custom CSS"),
+help_text = _("Your custom CSS."),
+widget=Textarea(attrs={'rows': '25'}),
+required=False))
+
{% endif %}
<link rel="shortcut icon" href="{{ settings.APP_FAVICON }}" />
<link href="{% media "/media/style/style.css" %}" rel="stylesheet" type="text/css" />
+ {% if settings.USE_CUSTOM_CSS %}
+ <link href="{% url custom_css %}" rel="stylesheet" type="text/css" />
+ {% endif %}
{% block forestyle %}{% endblock %}
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">google.load("jquery", "1.4.2");</script>
<li><a href="{% url admin_set allsets.about.name %}">{{ allsets.about.title }}</a></li>
<li><a href="{% url admin_set allsets.faq.name %}">{{ allsets.faq.title }}</a></li>
<li><a href="{% url admin_set allsets.sidebar.name %}">{{ allsets.sidebar.title }}</a></li>
+ <li><a href="{% url admin_set allsets.css.name %}">{{ allsets.css.title }}</a></li>
</ul>
</div>
<div id="other-sets-menu" class="module">
url(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}, name='sitemap'),
(r'^favicon\.ico$', app.meta.favicon),
+ url(r'^cstyle\.css$', app.meta.custom_css, name="custom_css"),
url(r'^m/(?P<skin>\w+)/media/(?P<path>.*)$', app.meta.media , name='osqa_media'),
url(r'^%s(?P<path>.*)$' % _('upfiles/'), 'django.views.static.serve',
context['othersets'] = sorted(
[s for s in Setting.sets.values() if not s.name in
('basic', 'users', 'email', 'paths', 'extkeys', 'repgain', 'minrep', 'voting', 'badges', 'about', 'faq', 'sidebar',
- 'form', 'moderation')]
+ 'form', 'moderation', 'css')]
, lambda s1, s2: s1.weight - s2.weight)
return render_to_response(template, context, context_instance=RequestContext(request))
else:
def favicon(request):
return HttpResponseRedirect(str(settings.APP_FAVICON))
+def custom_css(request):
+ return HttpResponse(unicode(settings.CUSTOM_CSS), mimetype="text/css")
+
def static(request, title, content):
return render_to_response('static.html', {'content' : content, 'title': title}, context_instance=RequestContext(request))