X-Git-Url: https://code.grnet.gr/git/snf-cloudcms/blobdiff_plain/5227118410f5ee78433a3cdfeaeb657b785ff9f6..800a9eb3ffbde14b81221e6cf288912f750e84de:/cloudcms/admin.py?ds=sidebyside diff --git a/cloudcms/admin.py b/cloudcms/admin.py index 19fcc38..1f8af48 100644 --- a/cloudcms/admin.py +++ b/cloudcms/admin.py @@ -33,12 +33,80 @@ 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", "
") + return redirect('/cmsmanage/rstimport/' + '?form_saved=1') + else: + messages.add_message(request, messages.ERROR, 'Form failed') + context['save_log'] = log.replace("\n", "
") + 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)