# -*- coding: utf-8 -*- from django.shortcuts import render_to_response from django.http import HttpResponseRedirect, HttpResponse from django.core.context_processors import csrf from django.conf import settings from django.forms.formsets import BaseFormSet, formset_factory from django.forms.models import modelformset_factory from django.contrib.contenttypes.models import ContentType from django.contrib.auth.decorators import login_required #models and forms from models import MetaSetting from forms import MetaForm, MetaFilterForm from functions.admin_views import AdminListView, AdminView class MetaListView(AdminListView): template_name = 'admin/meta/meta_list.html' form_class = MetaFilterForm model = MetaSetting class MetaView(AdminView): form_class = MetaForm model = MetaSetting success_url = '/admin/meta/all/' template_name = 'admin/meta/meta_setting.html' def form_valid(self, form): self.set_obj() expo = form.save(obj=self.obj) return HttpResponseRedirect(self.success_url) def get_form(self, form_class): if self.request.POST: return super(MetaView, self).get_form(form_class) obj = self.set_obj() if obj: data = {'name':obj.name} for code, name in settings.LANGUAGES: trans_obj = self.model._meta.translations_model.objects.get(language_code = code,master__id=obj.id) #access to translated fields data['title_%s' % code] = trans_obj.title data['description_%s' % code] = trans_obj.description data['keywords_%s' % code] = trans_obj.keywords data['h1_%s' % code] = trans_obj.h1 form =form_class(initial=data) return form else: return form_class() def get_context_data(self, **kwargs): context = super(MetaView, self).get_context_data(**kwargs) obj = self.set_obj() return context