# -*- 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.contrib.contenttypes.models import ContentType from django.contrib.auth.decorators import login_required #models and forms from models import Service, Review from forms import ServiceForm, ReviewForm from country.models import Country #custom views from functions.custom_views import objects_list def service_all(request): """ return list of all services with pagination """ return objects_list(request, Service, 'service_all.html') def review_all(request): """ return list of all reviews with pagination """ return objects_list(request, Review, 'review_all.html') @login_required def service_change(request, url): try: service = Service.objects.get(url=url) service_id = getattr(service, 'id') except: return HttpResponseRedirect('/service/service/all') if request.POST: form = ServiceForm(request.POST) if form.is_valid(): form.save(service_id) return HttpResponseRedirect('/service/service/all') else: data = {} #bitfield data['country'] = [item for item, bool in service.country if bool==True] data['city'] = [item for item, bool in service.city if bool==True] data['price'] = service.price.split(' ')[0] data['currency'] = service.price.split(' ')[1] #data from translated fields for code, name in settings.LANGUAGES: obj = Service._meta.translations_model.objects.get(language_code = code,master__id=service_id) #access to translated fields data['name_%s'%code] = obj.name data['description_%s'%code] = obj.description data['main_title_%s'%code] = obj.main_title data['advantage_%s'%code] = obj.advantage data['title_%s'%code] = obj.title data['keywords_%s'%code] = obj.keywords data['descriptions_%s'%code] = obj.descriptions form = ServiceForm(data) args = {} args.update(csrf(request)) args['form'] = form args['languages'] = settings.LANGUAGES args['service_id'] = service_id return render_to_response('service_add.html', args) @login_required def service_add(request): if request.POST: form = ServiceForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/service/service/all') else: form = ServiceForm() args = {} args.update(csrf(request)) args['form'] = form args['languages'] = settings.LANGUAGES return render_to_response('service_add.html', args) @login_required def review_add(request): if request.POST: form = ReviewForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/service/review/all') else: form = ReviewForm() args = {} args.update(csrf(request)) args['form'] = form args['languages'] = settings.LANGUAGES return render_to_response('review_add.html', args) @login_required def review_change(request, review_id): try: review = Review.objects.get(id=review_id) except: return HttpResponseRedirect('/service/review/all') if request.POST: form = ReviewForm(request.POST, instance=review) if form.is_valid(): form.save() return HttpResponseRedirect('/service/review/all') else: form = ReviewForm(instance=review) args = {} args.update(csrf(request)) args['form'] = form args['languages'] = settings.LANGUAGES return render_to_response('review_add.html', args)