# -*- coding: utf-8 -*- import json from django.http import HttpResponse from functions.custom_views import ExpoListView from django.views.generic import ListView, FormView from haystack.query import EmptySearchQuerySet from models import Company from forms import CreateCompanyForm from functions.search_forms import CompanySearchForm class CompanySearchView(ListView): paginate_by = 10 template_name = 'company/search.html' search_form = CompanySearchForm model = Company def get_queryset(self): if self.request.GET: form = self.search_form(self.request.GET) if form.is_valid(): return form.search() else: return EmptySearchQuerySet() else: return EmptySearchQuerySet() def get_context_data(self, **kwargs): context = super(CompanySearchView, self).get_context_data(**kwargs) context['search_form'] = CompanySearchForm(self.request.GET) queries = self.request.GET.copy() if queries.has_key('page'): del queries['page'] context['queries'] = queries context['search_action'] = '/members/search/' context['type'] = 'members search' return context class CompanyView(ExpoListView): paginate_by = 10 model = Company template_name = 'company_catalog.html' search_form = CompanySearchForm def get_context_data(self, **kwargs): context = super(CompanyView, self).get_context_data(**kwargs) context['type'] = 'members search' return context class CompanyExposition(CompanyView): template_name = 'test_list.html' def get_queryset(self): params = self.get_params() for param in params: if param.get('type') == 'event': company = Company.objects.safe_get(url=param.get('url')) #query = exp.users self.params = params return company.exposition_companies.all() def create_company(request): response = {'success': False} form = CreateCompanyForm(request.POST) if form.is_valid(): form.save(request.user) response['success'] = True return HttpResponse(json.dumps(response), content_type='application/json') else: response['errors'] = form.errors return HttpResponse(json.dumps(response), content_type='application/json') def get_company(request): if request.is_ajax(): term = request.GET['term'] qs = Company.objects.language().filter(translations__name__contains=term).distinct() result = [{'id': company.id, 'label': company.name} for company in qs] return HttpResponse(json.dumps(result), content_type='application/json') else: return HttpResponse('not ajax')