コード例 #1
0
ファイル: views.py プロジェクト: pombredanne/qbe
def qbe_form(request, query_hash=None):
    query_key = "qbe_query_%s" % query_hash
    db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(using=db_alias)
    json_data = None
    if query_key in request.session:
        data = request.session[query_key]
        db_alias = data.get("database_alias", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if not formset.is_valid():
            formset = QueryByExampleFormSet(using=db_alias)
        else:
            json_data = simplejson.dumps(data)
    apps = get_apps()
    models = qbe_models(admin_site=admin_site, only_admin_models=False)
    json_models = qbe_models(admin_site=admin_site, json=True)
    context = {
        'apps': apps,
        'models': models,
        'formset': formset,
        'databases': DATABASES,
        'database_alias': db_alias,
        'title': _(u"Query by Example"),
        'json_models': json_models,
        'json_data': json_data,
        'query_hash': query_hash,
        'savedqueries_installed': 'django_qbe.savedqueries' in settings.INSTALLED_APPS,
        'aliases_enabled': getattr(settings, 'QBE_ALIASES', False),
        'group_by_enabled': getattr(settings, 'QBE_GROUP_BY', False),
    }
    return render(request, 'qbe.html', context)
コード例 #2
0
ファイル: views.py プロジェクト: CulturePlex/qbe
def qbe_form(request):
    query_hash = request.GET.get("hash", "")
    query_key = "qbe_query_%s" % query_hash
    db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(using=db_alias)
    json_data = None
    if query_key in request.session:
        data = request.session[query_key]
        db_alias = data.get("database_alias", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if not formset.is_valid():
            formset = QueryByExampleFormSet(using=db_alias)
        else:
            json_data = simplejson.dumps(data)
    apps = get_apps()
    models = qbe_models(admin_site=admin_site, only_admin_models=False)
    json_models = qbe_models(admin_site=admin_site, json=True)
    admin_media_prefix = settings.ADMIN_MEDIA_PREFIX
    return render_to_response('qbe.html',
                              {'apps': apps,
                               'models': models,
                               'formset': formset,
                               'databases': DATABASES,
                               'database_alias': db_alias,
                               'title': _(u"Query by Example"),
                               'json_models': json_models,
                               'json_data': json_data,
                               'ADMIN_MEDIA_PREFIX': admin_media_prefix},
                              context_instance=RequestContext(request))
コード例 #3
0
ファイル: views.py プロジェクト: maxwell-k/qbe
def qbe_proxy(request):
    if request.POST:
        data = request.POST.copy()
        db_alias = request.session.get("qbe_database", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if formset.is_valid():
            pickled = pickle_encode(data)
            query_hash = get_query_hash(pickled)
            query_key = "qbe_query_%s" % query_hash
            request.session[query_key] = data
            return redirect("qbe_results", query_hash=query_hash)
    return redirect("qbe_form")
コード例 #4
0
ファイル: views.py プロジェクト: Axelio/Registro-Canaima
def qbe_export(request, query_hash, format):
    query_key = "qbe_query_%s" % query_hash
    if format in formats and query_key in request.session:
        data = request.session[query_key]
        db_alias = request.session.get("qbe_database", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if formset.is_valid():
            labels = formset.get_labels()
            query = formset.get_raw_query()
            results = formset.get_results(query)
            return formats[format](labels, results)
    return redirect("qbe_form")
コード例 #5
0
ファイル: views.py プロジェクト: lorenzogil/qbe
def qbe_proxy(request):
    if request.POST:
        data = request.POST.copy()
        formset = QueryByExampleFormSet(data=data)
        if formset.is_valid():
            pickled = pickle_encode(data)
            query_hash = md5(pickled + settings.SECRET_KEY).hexdigest()
            query_key = "qbe_query_%s" % query_hash
            request.session[query_key] = data
            reverse_url = reverse("qbe_results", args=(query_hash, ))
            return HttpResponseRedirect(reverse_url)
    return HttpResponseRedirect(reverse("qbe_form"))
コード例 #6
0
ファイル: views.py プロジェクト: lorenzogil/qbe
def qbe_export(request, format=None):
    query_hash = request.GET.get("hash", "")
    query_key = "qbe_query_%s" % query_hash
    if format and format in formats and query_key in request.session:
        data = request.session[query_key]
        formset = QueryByExampleFormSet(data=data)
        if formset.is_valid():
            labels = formset.get_labels()
            query = formset.get_raw_query()
            results = formset.get_results(query)
            return formats[format](labels, results)
    return HttpResponseRedirect(reverse("qbe_form"))
コード例 #7
0
ファイル: views.py プロジェクト: pombredanne/qbe
def qbe_proxy(request):
    if request.POST:
        data = request.POST.copy()
        db_alias = request.session.get("qbe_database", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if formset.is_valid():
            pickled = pickle_encode(data)
            query_hash = get_query_hash(pickled)
            query_key = "qbe_query_%s" % query_hash
            request.session[query_key] = data
            return redirect("qbe_results", query_hash=query_hash)
    return redirect("qbe_form")
コード例 #8
0
ファイル: views.py プロジェクト: jango2015/fruit-1
def qbe_proxy(request):
    if request.POST:
        data = request.POST.copy()
        db_alias = request.session.get("qbe_database", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if formset.is_valid():
            pickled = pickle_encode(data)
            query_hash = md5(pickled + settings.SECRET_KEY).hexdigest()
            query_key = "qbe_query_%s" % query_hash
            request.session[query_key] = data
            reverse_url = reverse("qbe_results", args=(query_hash, ))
            return HttpResponseRedirect(reverse_url)
    return HttpResponseRedirect(reverse("qbe_form"))
コード例 #9
0
def qbe_results(request, query_hash):
    query_key = "qbe_query_%s" % (query_hash or "")
    if query_key in request.session:
        query_key = "qbe_query_%s" % query_hash
        data = request.session[query_key]
    else:
        return redirect("qbe_form")
    db_alias = data.get("database_alias", "default")
    if db_alias in DATABASES:
        request.session["qbe_database"] = db_alias
    else:
        db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(data=data, using=db_alias)
    if formset.is_valid():
        row_number = getattr(settings, 'QBE_SHOW_ROW_NUMBER', True)
        admin_name = getattr(settings, "QBE_ADMIN", "admin")
        aliases = getattr(settings, 'QBE_ALIASES', False)
        labels = formset.get_labels(row_number=row_number, aliases=aliases)
        count = formset.get_count()
        limit = count
        try:
            page = int(request.GET.get("p", 0))
        except ValueError:
            page = 0
        if not request.GET.get("show", None):
            try:
                limit = int(data.get("limit", 100))
            except ValueError:
                limit = 100
        offset = limit * page
        results = formset.get_results(limit=limit,
                                      offset=offset,
                                      admin_name=admin_name,
                                      row_number=row_number)
        query = formset.get_raw_query(add_params=True)
        pickled = pickle_encode(data)
        context = {
            'formset': formset,
            'title': _(u"Query by Example"),
            'results': results,
            'labels': labels,
            #'query': query,
            'count': count,
            'limit': limit,
            'page': page,
            'offset': offset + 1,
            'offset_limit': offset + limit,
            'pickled': pickled,
            'query_hash': query_hash,
            'admin_urls': (admin_name != None and formset.has_admin_urls()),
            'formats': formats,
            'savedqueries_installed': 'django_qbe.savedqueries'
            in settings.INSTALLED_APPS,
            'QBE_MENU_EDIT': getattr(settings, 'QBE_MENU_EDIT', False),
            'QBE_SHOW_BREADCRUMBS': getattr(settings, 'QBE_SHOW_BREADCRUMBS',
                                            True)
        }
        return render(request, 'qbe_results.html', context)
    return redirect("qbe_form")
コード例 #10
0
ファイル: views.py プロジェクト: jango2015/fruit-1
def qbe_form(request):
    query_hash = request.GET.get("hash", "")
    query_key = "qbe_query_%s" % query_hash
    db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(using=db_alias)
    json_data = None
    if query_key in request.session:
        data = request.session[query_key]
        db_alias = data.get("database_alias", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if not formset.is_valid():
            formset = QueryByExampleFormSet(using=db_alias)
        else:
            json_data = simplejson.dumps(data)
    apps = get_apps()
    models = qbe_models(admin_site=admin_site, only_admin_models=False)
    json_models = qbe_models(admin_site=admin_site, json=True)
    admin_media_prefix = settings.ADMIN_MEDIA_PREFIX
    return render_to_response('qbe.html', {
        'apps': apps,
        'models': models,
        'formset': formset,
        'databases': DATABASES,
        'database_alias': db_alias,
        'title': _(u"Query by Example"),
        'json_models': json_models,
        'json_data': json_data,
        'ADMIN_MEDIA_PREFIX': admin_media_prefix
    },
                              context_instance=RequestContext(request))
コード例 #11
0
ファイル: qbe_export.py プロジェクト: sohonetlabs/qbe
 def handle(self, **options):
     # Checking options
     query_hash = options.get("query_hash", None)
     if not query_hash:
         self.stderr.write(u"Wrong or missing hash code\n")
         return None
     output = options.get("output", None)
     file_name = None
     file_descr = None
     if output:
         file_name = output
         try:
             file_descr = open(file_name, "w")
         except IOError:
             self.stderr.write("Unable to create a file: \"%s\"\n" \
                               % file_name)
     export_format = options.get("export_format", "csv")
     if export_format not in formats:
         self.stderr.write(u"Wrong format to export: %s\n" % export_format)
         return None
     db_alias = options.get("db_alias", "default")
     saved_queries = SavedQuery.objects.filter(query_hash=query_hash)
     saved_queries_length = len(saved_queries)
     # Making the query
     if saved_queries_length == 1:
         data = saved_queries[0].query_data
         formset = QueryByExampleFormSet(data=data, using=db_alias)
         if formset.is_valid():
             labels = formset.get_labels()
             query = formset.get_raw_query()
             results = formset.get_results(query)
             response = formats[export_format](labels, results)
             if file_descr:
                 file_descr.writelines(response.streaming_content)
             else:
                 self.stdout.writelines(response.streaming_content)
         else:
             self.stderr.write(u"Malformed query: %s\n" % query_hash)
     else:
         self.stderr.write(u"Invalid query_hash, returned %s queries\n" \
                           % saved_queries_length)
     if output:
         file_descr.close()
コード例 #12
0
ファイル: views.py プロジェクト: MikeVelazcoMtz/qbe
def qbe_results(request, query_hash):
    query_key = "qbe_query_%s" % (query_hash or "")
    if query_key in request.session:
        query_key = "qbe_query_%s" % query_hash
        data = request.session[query_key]
    else:
        return redirect("qbe_form")
    db_alias = data.get("database_alias", "default")
    if db_alias in DATABASES:
        request.session["qbe_database"] = db_alias
    else:
        db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(data=data, using=db_alias)
    if formset.is_valid():
        row_number = getattr(settings, 'QBE_SHOW_ROW_NUMBER', True)
        admin_name = getattr(settings, "QBE_ADMIN", "admin")
        aliases = getattr(settings, 'QBE_ALIASES', False)
        labels = formset.get_labels(row_number=row_number, aliases=aliases)
        count = formset.get_count()
        limit = count
        try:
            page = int(request.GET.get("p", 0))
        except ValueError:
            page = 0
        if not request.GET.get("show", None):
            try:
                limit = int(data.get("limit", 100))
            except ValueError:
                limit = 100
        offset = limit * page
        results = formset.get_results(limit=limit, offset=offset,
                                      admin_name=admin_name,
                                      row_number=row_number)
        query = formset.get_raw_query(add_params=True)
        pickled = pickle_encode(data)
        context = {
            'formset': formset,
            'title': _(u"Query by Example"),
            'results': results,
            'labels': labels,
            #'query': query,
            'count': count,
            'limit': limit,
            'page': page,
            'offset': offset + 1,
            'offset_limit': offset + limit,
            'pickled': pickled,
            'query_hash': query_hash,
            'admin_urls': (admin_name != None and formset.has_admin_urls()),
            'formats': formats,
            'savedqueries_installed': 'django_qbe.savedqueries' in settings.INSTALLED_APPS,
            'QBE_MENU_EDIT': getattr(settings, 'QBE_MENU_EDIT', False),
            'QBE_SHOW_BREADCRUMBS': getattr(settings, 'QBE_SHOW_BREADCRUMBS', True)
        }
        return render(request, 'qbe_results.html', context)
    return redirect("qbe_form")
コード例 #13
0
ファイル: views.py プロジェクト: agronick/qbe
def qbe_form(request, query_hash=None):
    query_key = "qbe_query_%s" % query_hash
    db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(using=db_alias)
    json_data = None
    if query_key in request.session:
        data = request.session[query_key]
        db_alias = data.get("database_alias", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if not formset.is_valid():
            formset = QueryByExampleFormSet(using=db_alias)
        else:
            json_data = json.dumps(data)
    apps = get_apps()
    models = qbe_models(admin_site=admin_site, only_admin_models=False)
    json_models = qbe_models(admin_site=admin_site, json=True)
    title_url = reverse("qbe_form")
    saved_query = None
    if QBE_SAVED_QUERIES:
        title_url = reverse("admin:app_list", args=["savedqueries"])
        from django_qbe.savedqueries.models import SavedQuery
        saved_queries = SavedQuery.objects.filter(query_hash=query_hash)
        saved_query = saved_queries.first()
    context = {
        'apps': apps,
        'models': models,
        'formset': formset,
        'databases': DATABASES,
        'database_alias': db_alias,
        'title': _(u"Query by Example"),
        'title_url': title_url,
        'saved_query': saved_query,
        'json_models': json_models,
        'json_data': json_data,
        'query_hash': query_hash,
        'savedqueries_installed': QBE_SAVED_QUERIES,
        'aliases_enabled': QBE_ALIASES,
        'group_by_enabled': QBE_GROUP_BY
    }
    return render(request, 'qbe.html', context)
コード例 #14
0
ファイル: views.py プロジェクト: jango2015/fruit-1
def qbe_results(request, query_hash):
    query_key = "qbe_query_%s" % (query_hash or "")
    if query_key in request.session:
        query_key = "qbe_query_%s" % query_hash
        data = request.session[query_key]
    else:
        return HttpResponseRedirect(reverse("qbe_form"))
    db_alias = data.get("database_alias", "default")
    if db_alias in DATABASES:
        request.session["qbe_database"] = db_alias
    else:
        db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(data=data, using=db_alias)
    if formset.is_valid():
        row_number = True
        admin_name = getattr(settings, "QBE_ADMIN", "admin")
        labels = formset.get_labels(row_number=row_number)
        count = formset.get_count()
        limit = count
        try:
            page = int(request.GET.get("p", 0))
        except ValueError:
            page = 0
        if not request.GET.get("show", None):
            try:
                limit = int(data.get("limit", 100))
            except ValueError:
                limit = 100
        offset = limit * page
        results = formset.get_results(limit=limit,
                                      offset=offset,
                                      admin_name=admin_name,
                                      row_number=row_number)
        query = formset.get_raw_query(add_params=True)
        pickled = pickle_encode(data)
        admin_media_prefix = settings.ADMIN_MEDIA_PREFIX
        return render_to_response('qbe_results.html', {
            'formset': formset,
            'title': _(u"Query by Example"),
            'results': results,
            'labels': labels,
            'query': query,
            'count': count,
            'limit': limit,
            'page': page,
            'offset': offset + 1,
            'offset_limit': offset + limit,
            'pickled': pickled,
            'query_hash': query_hash,
            'admin_urls': (admin_name != None),
            'formats': formats,
            'ADMIN_MEDIA_PREFIX': admin_media_prefix
        },
                                  context_instance=RequestContext(request))
コード例 #15
0
ファイル: views.py プロジェクト: xPlanetExpress/qbe
def qbe_export(request, query_hash, format):
    query_key = "qbe_query_%s" % query_hash
    if format in formats and query_key in request.session:
        data = request.session[query_key]
        db_alias = request.session.get("qbe_database", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if formset.is_valid():
            labels = formset.get_labels()
            query = formset.get_raw_query()
            results = formset.get_results(query)
            return formats[format](labels, results)
    return redirect("qbe_form")
コード例 #16
0
ファイル: views.py プロジェクト: CulturePlex/qbe
def qbe_results(request, query_hash):
    query_key = "qbe_query_%s" % (query_hash or "")
    if query_key in request.session:
        query_key = "qbe_query_%s" % query_hash
        data = request.session[query_key]
    else:
        return HttpResponseRedirect(reverse("qbe_form"))
    db_alias = data.get("database_alias", "default")
    if db_alias in DATABASES:
        request.session["qbe_database"] = db_alias
    else:
        db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(data=data, using=db_alias)
    if formset.is_valid():
        row_number = True
        admin_name = getattr(settings, "QBE_ADMIN", "admin")
        labels = formset.get_labels(row_number=row_number)
        count = formset.get_count()
        limit = count
        try:
            page = int(request.GET.get("p", 0))
        except ValueError:
            page = 0
        if not request.GET.get("show", None):
            try:
                limit = int(data.get("limit", 100))
            except ValueError:
                limit = 100
        offset = limit * page
        results = formset.get_results(limit=limit, offset=offset,
                                      admin_name=admin_name,
                                      row_number=row_number)
        query = formset.get_raw_query(add_params=True)
        pickled = pickle_encode(data)
        admin_media_prefix = settings.ADMIN_MEDIA_PREFIX
        return render_to_response('qbe_results.html',
                                  {'formset': formset,
                                   'title': _(u"Query by Example"),
                                   'results': results,
                                   'labels': labels,
                                   'query': query,
                                   'count': count,
                                   'limit': limit,
                                   'page': page,
                                   'offset': offset + 1,
                                   'offset_limit': offset + limit,
                                   'pickled': pickled,
                                   'query_hash': query_hash,
                                   'admin_urls': (admin_name != None),
                                   'formats': formats,
                                   'ADMIN_MEDIA_PREFIX': admin_media_prefix},
                                  context_instance=RequestContext(request))
コード例 #17
0
ファイル: views.py プロジェクト: maxwell-k/qbe
def qbe_form(request, query_hash=None):
    query_key = "qbe_query_%s" % query_hash
    db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(using=db_alias)
    json_data = None
    if query_key in request.session:
        data = request.session[query_key]
        db_alias = data.get("database_alias", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if not formset.is_valid():
            formset = QueryByExampleFormSet(using=db_alias)
        else:
            json_data = json.dumps(data)
    apps = django_apps.get_models()
    models = qbe_models(admin_site=admin_site, only_admin_models=False)
    json_models = qbe_models(admin_site=admin_site, json=True)
    title_url = reverse("qbe_form")
    saved_query = None
    if QBE_SAVED_QUERIES:
        title_url = reverse("admin:app_list", args=["savedqueries"])
        from django_qbe.savedqueries.models import SavedQuery
        saved_queries = SavedQuery.objects.filter(query_hash=query_hash)
        saved_query = saved_queries.first()
    context = {
        'apps': apps,
        'models': models,
        'formset': formset,
        'databases': DATABASES,
        'database_alias': db_alias,
        'title': _(u"Query by Example"),
        'title_url': title_url,
        'saved_query': saved_query,
        'json_models': json_models,
        'json_data': json_data,
        'query_hash': query_hash,
        'savedqueries_installed': QBE_SAVED_QUERIES,
        'aliases_enabled': QBE_ALIASES,
        'group_by_enabled': QBE_GROUP_BY
    }
    return render(request, 'qbe.html', context)
コード例 #18
0
ファイル: views.py プロジェクト: xPlanetExpress/qbe
def qbe_form(request, query_hash=None):
    query_key = "qbe_query_%s" % query_hash
    db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(using=db_alias)
    json_data = None
    if query_key in request.session:
        data = request.session[query_key]
        db_alias = data.get("database_alias", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if not formset.is_valid():
            formset = QueryByExampleFormSet(using=db_alias)
        else:
            json_data = simplejson.dumps(data)
    apps = get_apps()
    models = qbe_models(admin_site=admin_site, only_admin_models=False)
    json_models = qbe_models(admin_site=admin_site, json=True)
    context = {
        'apps':
        apps,
        'models':
        models,
        'formset':
        formset,
        'databases':
        DATABASES,
        'database_alias':
        db_alias,
        'title':
        _(u"Query by Example"),
        'json_models':
        json_models,
        'json_data':
        json_data,
        'query_hash':
        query_hash,
        'savedqueries_installed':
        'django_qbe.savedqueries' in settings.INSTALLED_APPS,
    }
    return render(request, 'qbe.html', context)
コード例 #19
0
 def handle(self, *args, **options):
     # Checking args and options
     if args:
         query_hash = args[0]
     else:
         self.stderr.write(u"Wrong or missing hash code\n")
         return None
     output = options.get("output", None)
     file_name = None
     file_descr = None
     if output:
         file_name = output
         try:
             file_descr = open(file_name, "w")
         except IOError:
             self.stderr.write("Unable to create a file: \"%s\"\n" \
                               % file_name)
     export_format = options.get("export_format", "csv")
     if export_format not in formats:
         self.stderr.write(u"Wrong format to export: %s\n" % export_format)
         return None
     db_alias = options.get("db_alias", "default")
     saved_queries = SavedQuery.objects.filter(query_hash=query_hash)
     saved_queries_length = len(saved_queries)
     # Making the query
     if saved_queries_length == 1:
         data = saved_queries[0].query_data
         formset = QueryByExampleFormSet(data=data, using=db_alias)
         if formset.is_valid():
             labels = formset.get_labels()
             query = formset.get_raw_query()
             results = formset.get_results(query)
             response = formats[export_format](labels, results)
             if file_descr:
                 file_descr.write(response.content)
             else:
                 self.stdout.write(response.content)
         else:
             self.stderr.write(u"Malformed query: %s\n" % query_hash)
     else:
         self.stderr.write(u"Invalid query_hash, returned %s queries\n" \
                           % saved_queries_length)
     if output:
         file_descr.close()
コード例 #20
0
def qbe_form(request, query_hash=None):
    disable_models = getattr(settings, 'QBE_DISABLE_MODELS', [])
    query_key = "qbe_query_%s" % query_hash
    db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(using=db_alias)
    json_data = None
    if query_key in request.session:
        data = request.session[query_key]
        db_alias = data.get("database_alias", "default")
        formset = QueryByExampleFormSet(data=data, using=db_alias)
        if not formset.is_valid():
            formset = QueryByExampleFormSet(using=db_alias)
        else:
            json_data = simplejson.dumps(data)
    apps = get_apps()
    models = qbe_models(admin_site=admin_site,
                        only_admin_models=False,
                        disable_models=disable_models)
    json_models = qbe_models(admin_site=admin_site, json=True)
    context = {
        'apps': apps,
        'models': models,
        'formset': formset,
        'database_alias': db_alias,
        'title': _(u"Query by Example"),
        'json_models': json_models,
        'json_data': json_data,
        'query_hash': query_hash,
        'savedqueries_installed': 'django_qbe.savedqueries'
        in settings.INSTALLED_APPS,
        'aliases_enabled': getattr(settings, 'QBE_ALIASES', False),
        'group_by_enabled': getattr(settings, 'QBE_GROUP_BY', False),
        'QBE_MENU_EDIT': getattr(settings, 'QBE_MENU_EDIT', False),
        'QBE_SHOW_BREADCRUMBS': getattr(settings, 'QBE_SHOW_BREADCRUMBS', True)
    }
    return render(request, 'qbe.html', context)
コード例 #21
0
ファイル: views.py プロジェクト: maxwell-k/qbe
def qbe_results(request, query_hash):
    query_key = "qbe_query_%s" % (query_hash or "")
    if query_key in request.session:
        query_key = "qbe_query_%s" % query_hash
        data = request.session[query_key]
    else:
        return redirect("qbe_form")
    db_alias = data.get("database_alias", "default")
    if db_alias in DATABASES:
        request.session["qbe_database"] = db_alias
    else:
        db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(data=data, using=db_alias)
    if formset.is_valid():
        row_number = QBE_SHOW_ROW_NUMBER
        admin_name = QBE_ADMIN
        aliases = QBE_ALIASES
        labels = formset.get_labels(row_number=row_number, aliases=aliases)
        count = formset.get_count()
        limit = count
        try:
            page = int(request.GET.get("p", 0))
        except ValueError:
            page = 0
        if not request.GET.get("show", None):
            try:
                limit = int(data.get("limit", 100))
            except ValueError:
                limit = 100
        offset = limit * page
        results = formset.get_results(limit=limit,
                                      offset=offset,
                                      admin_name=admin_name,
                                      row_number=row_number)
        query = formset.get_raw_query(add_params=True)
        pickled = pickle_encode(data)
        title_url = reverse("qbe_form")
        saved_query = None
        if QBE_SAVED_QUERIES:
            title_url = reverse("admin:app_list", args=["savedqueries"])
            from django_qbe.savedqueries.models import SavedQuery
            saved_queries = SavedQuery.objects.filter(query_hash=query_hash)
            saved_query = saved_queries.first()
        context = {
            'formset': formset,
            'title': _(u"Query by Example"),
            'title_url': title_url,
            'saved_query': saved_query,
            'results': results,
            'labels': labels,
            'query': query,
            'count': count,
            'limit': limit,
            'page': page,
            'offset': offset + 1,
            'offset_limit': offset + limit,
            'pickled': pickled,
            'query_hash': query_hash,
            'admin_urls': admin_name is not None and formset.has_admin_urls(),
            'formats': formats,
            'savedqueries_installed': QBE_SAVED_QUERIES,
            'aliases_enabled': QBE_ALIASES,
            'group_by_enabled': QBE_GROUP_BY
        }
        return render(request, 'qbe_results.html', context)
    return redirect("qbe_form")
コード例 #22
0
ファイル: views.py プロジェクト: agronick/qbe
def qbe_results(request, query_hash):
    query_key = "qbe_query_%s" % (query_hash or "")
    if query_key in request.session:
        query_key = "qbe_query_%s" % query_hash
        data = request.session[query_key]
    else:
        return redirect("qbe_form")
    db_alias = data.get("database_alias", "default")
    if db_alias in DATABASES:
        request.session["qbe_database"] = db_alias
    else:
        db_alias = request.session.get("qbe_database", "default")
    formset = QueryByExampleFormSet(data=data, using=db_alias)
    if formset.is_valid():
        row_number = QBE_SHOW_ROW_NUMBER
        admin_name = QBE_ADMIN
        aliases = QBE_ALIASES
        labels = formset.get_labels(row_number=row_number, aliases=aliases)
        count = formset.get_count()
        limit = count
        try:
            page = int(request.GET.get("p", 0))
        except ValueError:
            page = 0
        if not request.GET.get("show", None):
            try:
                limit = int(data.get("limit", 100))
            except ValueError:
                limit = 100
        offset = limit * page
        results = formset.get_results(limit=limit, offset=offset,
                                      admin_name=admin_name,
                                      row_number=row_number)
        query = formset.get_raw_query(add_params=True)
        pickled = pickle_encode(data)
        title_url = reverse("qbe_form")
        saved_query = None
        if QBE_SAVED_QUERIES:
            title_url = reverse("admin:app_list", args=["savedqueries"])
            from django_qbe.savedqueries.models import SavedQuery
            saved_queries = SavedQuery.objects.filter(query_hash=query_hash)
            saved_query = saved_queries.first()
        context = {
            'formset': formset,
            'title': _(u"Query by Example"),
            'title_url': title_url,
            'saved_query': saved_query,
            'results': results,
            'labels': labels,
            'query': query,
            'count': count,
            'limit': limit,
            'page': page,
            'offset': offset + 1,
            'offset_limit': offset + limit,
            'pickled': pickled,
            'query_hash': query_hash,
            'admin_urls': admin_name is not None and formset.has_admin_urls(),
            'formats': formats,
            'savedqueries_installed': QBE_SAVED_QUERIES,
            'aliases_enabled': QBE_ALIASES,
            'group_by_enabled': QBE_GROUP_BY
        }
        return render(request, 'qbe_results.html', context)
    return redirect("qbe_form")