Bump version to 0.14.3next
[snf-cloudcms] / cloudcms / admin.py
index 19fcc38..1f8af48 100644 (file)
 
 
 from django.contrib import admin
+from django.conf.urls.defaults import patterns
+from django.views.generic.simple import direct_to_template
+from django.http import HttpResponse
+from django.shortcuts import redirect
+from django.contrib import messages
+
+
+from feincms.translations import admin_translationinline, short_language_code
+
 from cloudcms import models
 
 
 class ApplicationAdmin(admin.ModelAdmin):
-    raw_id_fields = ('logo', )
+    raw_id_fields = ('logo', 'favicon')
+
+
+class ClientVersionSourceAdminInline(admin.StackedInline):
+    model = models.ClientVersionSource
+    raw_id_fields = ('logo',)
+    extra = 1
+
+
+class ClientAdmin(admin.ModelAdmin):
+    inlines = [ClientVersionSourceAdminInline]
+
+
+ServiceTranslationInline = admin_translationinline(models.ServiceTranslation,
+        prepopulated_fields={'slug': ('title',)})
+
+class ServiceAdmin(admin.ModelAdmin):
+    inlines = [ServiceTranslationInline]
 
 
 admin.site.register(models.Application, ApplicationAdmin)
+admin.site.register(models.Client, ClientAdmin)
+admin.site.register(models.Service, ServiceAdmin)
+
+
+from cloudcms.forms import RstZipImportForm
+
+def import_from_sphinx(request):
+    if not request.user.is_superuser:
+        return HttpResponse(status=401)
+
+    context = {}
+    form = RstZipImportForm()
+
+    if request.GET.get('form_saved'):
+        context['save_log'] = request.session.get('save_log')
+    else:
+        if request.session.get('save_log'):
+            del request.session['save_log']
+
+    if request.method == 'POST':
+        form = RstZipImportForm(request.POST, request.FILES)
+        if form.is_valid():
+            try:
+                saved, log = form.save(request.user)
+                if saved:
+                    messages.add_message(request, messages.INFO, 'Form saved')
+                    request.session['save_log'] = log.replace("\n", "<br />")
+                    return redirect('/cmsmanage/rstimport/' + '?form_saved=1')
+                else:
+                    messages.add_message(request, messages.ERROR, 'Form failed')
+                    context['save_log'] = log.replace("\n", "<br />")
+            except Exception, e:
+                context['save_log'] = e
+
+        else:
+            context['error'] = True
+
+    context['form'] = form
+
+    return direct_to_template(request, 'cms/admin_import_guide_faq.html', context)
+
+sphinx_import = admin.site.admin_view(import_from_sphinx)