Update front tag list management with virtual SETTINGS and djblets.siteconfig. siteconfig
authorcavaliet
Wed, 25 Jan 2012 16:55:04 +0100
branchsiteconfig
changeset 447 91d87f958a16
parent 444 2711eef17092
child 1179 ec01d5dfb4c6
Update front tag list management with virtual SETTINGS and djblets.siteconfig.
.settings/org.eclipse.core.resources.prefs
src/ldt/ldt/ldt_utils/forms.py
src/ldt/ldt/ldt_utils/siteconfig.py
src/ldt/ldt/ldt_utils/urls.py
src/ldt/ldt/ldt_utils/views/front.py
src/ldt/ldt/settings.py
virtualenv/res/lib/lib_create_env.py
virtualenv/res/src/djblets-release-0.6.14.tar.gz
virtualenv/res/src/nose-1.1.2.tar.gz
web/ldtplatform/settings.py
--- a/.settings/org.eclipse.core.resources.prefs	Wed Jan 25 12:31:55 2012 +0100
+++ b/.settings/org.eclipse.core.resources.prefs	Wed Jan 25 16:55:04 2012 +0100
@@ -1,4 +1,4 @@
-#Wed Jan 25 12:23:22 CET 2012
+#Wed Jan 25 13:28:26 CET 2012
 eclipse.preferences.version=1
 encoding//src/ldt/ldt/core/migrations/0001_initial.py=utf-8
 encoding//src/ldt/ldt/core/migrations/0002_auto__del_owner.py=utf-8
@@ -11,6 +11,7 @@
 encoding//src/ldt/ldt/ldt_utils/migrations/0009_auto__chg_field_content_image__chg_field_project_image.py=utf-8
 encoding//src/ldt/ldt/ldt_utils/migrations/0010_auto__add_annotationstat.py=utf-8
 encoding//src/ldt/ldt/ldt_utils/migrations/0011_gen_stat_annotation.py=utf-8
+encoding//src/ldt/ldt/ldt_utils/siteconfig.py=utf-8
 encoding//src/ldt/ldt/text/migrations/0001_initial.py=utf-8
 encoding//src/ldt/ldt/user/migrations/0001_initial.py=utf-8
 encoding//src/ldt/ldt/user/migrations/0002_auto__del_irigroup.py=utf-8
--- a/src/ldt/ldt/ldt_utils/forms.py	Wed Jan 25 12:31:55 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/forms.py	Wed Jan 25 16:55:04 2012 +0100
@@ -1,10 +1,13 @@
 from django import forms
 from django.utils.translation import ugettext_lazy as _
 from django.contrib.auth.models import Group
+from djblets.siteconfig.forms import SiteSettingsForm
 from ldt.forms import widgets as ldt_widgets
+from ldt.ldt_utils.siteconfig import load_site_config
 from ldt.security.forms import ShareForm
 from models import Project, Content, Media
 from utils import generate_uuid
+import re
 
 class LdtImportForm(forms.Form):
     importFile = forms.FileField()
@@ -102,3 +105,24 @@
     
     class Meta:
         model = Group
+
+
+class GeneralSettingsForm(SiteSettingsForm):
+    my_array = forms.CharField(
+        label="Front tag list",
+        required=False,
+        help_text="A comma-separated list of tags !")
+
+    def load(self):
+        self.fields['my_array'].initial = ', '.join(self.siteconfig.get('front_tag_list'))
+        super(GeneralSettingsForm, self).load()
+    
+    def save(self):
+        self.siteconfig.set('front_tag_list',[x.strip() for x in self.cleaned_data['my_array'].split(',')])
+        super(GeneralSettingsForm, self).save()
+        load_site_config()
+
+    class Meta:
+        save_blacklist = ('my_array',)
+        title = "Front Settings : tag list, etc..."
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/ldt_utils/siteconfig.py	Wed Jan 25 16:55:04 2012 +0100
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+# ldt_utils/siteconfig.py
+# NOTE: Import this file in your urls.py or some place before
+#       any code relying on settings is imported.
+from django.contrib.sites.models import Site
+
+from djblets.siteconfig.models import SiteConfiguration
+from djblets.siteconfig.django_settings import apply_django_settings, get_django_defaults, generate_defaults
+
+settings_map = {
+    # siteconfig key    settings.py key
+    'front_tag_list':        'FRONT_TAG_LIST',
+}
+
+defaults = {
+    'front_tag_list': [u"Enmi 2011", u"tcymhkhjvrv", u"film", u"conférence"],
+}
+defaults.update(generate_defaults(settings_map))
+
+def load_site_config():
+    """Sets up the SiteConfiguration, provides defaults and syncs settings."""
+    try:
+        siteconfig = SiteConfiguration.objects.get_current()
+    except SiteConfiguration.DoesNotExist:
+        # Either warn or just create the thing. Depends on your app
+        siteconfig = SiteConfiguration(site=Site.objects.get_current(), version="1.0")
+
+    if not siteconfig.get_defaults():
+        siteconfig.add_defaults(defaults)
+        siteconfig.add_defaults(get_django_defaults())
+    
+    apply_django_settings(siteconfig, settings_map)
+    apply_django_settings(siteconfig)
+    
+    
+load_site_config()
\ No newline at end of file
--- a/src/ldt/ldt/ldt_utils/urls.py	Wed Jan 25 12:31:55 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/urls.py	Wed Jan 25 16:55:04 2012 +0100
@@ -1,5 +1,6 @@
 from django.conf.urls.defaults import patterns, url
 from ldt.management import test_ldt
+from ldt.ldt_utils.forms import GeneralSettingsForm
 
 # Uncomment the next two lines to enable the admin:
 # from django.contrib import admin
@@ -52,6 +53,10 @@
 )
 
 urlpatterns += patterns('',
+    url(r'^settings/$', 'djblets.siteconfig.views.site_settings', {'form_class': GeneralSettingsForm}),
+)
+
+urlpatterns += patterns('',
     url('^jsi18n', 'django.views.i18n.javascript_catalog', name='jsi18n'),
 )
 
--- a/src/ldt/ldt/ldt_utils/views/front.py	Wed Jan 25 12:31:55 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/front.py	Wed Jan 25 16:55:04 2012 +0100
@@ -11,6 +11,7 @@
 from ldt.security.utils import add_change_attr
 from tagging.models import Tag, TaggedItem
 
+from ldt.ldt_utils.siteconfig import load_site_config
 
 @login_required
 def front_home(request):
@@ -22,7 +23,6 @@
     active_groups = Group.objects.exclude(name=settings.PUBLIC_GROUP_NAME)[:5]
     # Get the main tag list
     front_tags = settings.FRONT_TAG_LIST
-
     
     is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
 
--- a/src/ldt/ldt/settings.py	Wed Jan 25 12:31:55 2012 +0100
+++ b/src/ldt/ldt/settings.py	Wed Jan 25 16:55:04 2012 +0100
@@ -33,6 +33,7 @@
     'south',
     'guardian',
     'sorl.thumbnail',
+    'djblets.siteconfig',
 )
 
 MIDDLEWARE_CLASSES = (
--- a/virtualenv/res/lib/lib_create_env.py	Wed Jan 25 12:31:55 2012 +0100
+++ b/virtualenv/res/lib/lib_create_env.py	Wed Jan 25 16:55:04 2012 +0100
@@ -49,6 +49,12 @@
         'LXML': {'setup': 'lxml', 'url':"lxml-2.3.1.tar.bz2", 'local':"lxml-2.3.1.tar.bz2"}
     })
 
+URLS.update({
+    'SORL_THUMBNAIL': {'setup': 'sorl_thumbnail','url': 'https://github.com/sorl/sorl-thumbnail/tarball/v10.12.1', 'local':"sorl-sorl-thumbnail-v10.12.1-65-g2285451.tar.gz"},
+    'NOSE': {'setup': 'nose', 'url': 'http://pypi.python.org/packages/source/n/nose/nose-1.1.2.tar.gz', 'local':"nose-1.1.2.tar.gz"},
+    'DJBLETS': {'setup': 'djblets', 'url': 'https://github.com/djblets/djblets/tarball/release-0.6.14', 'local':"djblets-release-0.6.14.tar.gz"},
+})
+
 
 
 class ResourcesEnv(object):
Binary file virtualenv/res/src/djblets-release-0.6.14.tar.gz has changed
Binary file virtualenv/res/src/nose-1.1.2.tar.gz has changed
--- a/web/ldtplatform/settings.py	Wed Jan 25 12:31:55 2012 +0100
+++ b/web/ldtplatform/settings.py	Wed Jan 25 16:55:04 2012 +0100
@@ -90,6 +90,7 @@
     #'django.middleware.locale.LocaleMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django_openid_consumer.middleware.OpenIDMiddleware',
+    'djblets.siteconfig.middleware.SettingsMiddleware',
     'ldt.ldt_utils.middleware.userprofile.LanguageMiddleware',
     'ldt.security.middleware.SecurityMiddleware',
     'ldt.api.middleware.pistonput.PistonPutMiddleware',
@@ -102,6 +103,7 @@
     "django.core.context_processors.i18n",
     "django.core.context_processors.media",
     "django.core.context_processors.static",
+    'djblets.siteconfig.context_processors.siteconfig',
     "ldt.utils.context_processors.ldt_context",
 )
 
@@ -145,6 +147,7 @@
     'south',
     'guardian',
     'sorl.thumbnail',
+    'djblets.siteconfig',
 )
 
 AUTH_PROFILE_MODULE = 'user.UserProfile'