コード例 #1
0
ファイル: views.py プロジェクト: Junar/datal
def update_list(request):
    account         = request.account
    auth_manager    = request.auth_manager
    preferences     = account.get_preferences()


    form = QueryDatasetForm(request.POST)
    if form.is_valid():
        query = form.cleaned_data.get('search')
        page = form.cleaned_data.get('page')
        order = form.cleaned_data.get('order')
        order_type = form.cleaned_data.get('order_type')

        resources = ['ds', 'db', 'vz', 'dt']
        category_filters = form.cleaned_data.get('category_filters')
        if category_filters:
            category_filters=category_filters.lower().split(",")


        if preferences['account_home_filters'] == 'featured_accounts':

            entity = form.cleaned_data.get('entity_filters')
            if entity:
                accounts_ids = [int(entity)]
            else:
                featured_accounts = account.account_set.values('id').all()
                accounts_ids = [featured_account['id'] for featured_account in featured_accounts]

            typef = form.cleaned_data.get('type_filters')
            if typef:
                resources = [typef]

            queryset = FinderQuerySet(FinderManager(HomeFinder), 
                query = query,
                max_results = 250,
                account_id = accounts_ids,
                resource = resources,
                category_filters=category_filters,
                order = order,
                order_type = order_type
            ) 

        else:
            all_resources = form.cleaned_data.get('all')
            if not all_resources:
                resources_type = form.cleaned_data.get('type')
                resources = []
                for resource_name in resources_type.split(','):
                    resources.append(resource_name)

            queryset = FinderQuerySet(FinderManager(HomeFinder), 
                category_filters= category_filters,
                query=query,
                resource=resources,
                max_results=250,
                order=order,
                order_type=order_type,
                account_id=account.id
            )


        ## manual temporary fix for indextank fails
        #results2 = []
        #for r in results:
        #    if r['category'] in categories or categories==[]:
        #        results2.append(r)

        paginator = Paginator(queryset, 25)

        revisions = paginator.page(page and page or 1)
        if preferences['account_home_filters'] == 'featured_accounts':
            add_domains_to_permalinks(revisions.object_list)
        error = ''

        results = revisions.object_list
    else:
        error = 'Invalid data'
        results=[]
        categories=[]

    t = loader.get_template('loadHome/table.json')
    c = Context(locals())
    return HttpResponse(t.render(c), content_type="application/json")
コード例 #2
0
ファイル: views.py プロジェクト: anukat2015/datal
def update_list(request):
    account         = request.account
    auth_manager    = request.auth_manager
    preferences     = account.get_preferences()
    language        = request.auth_manager.language

    resources = ["ds", "vz"]
    resources.extend([finder.doc_type for finder in DatalPluginPoint.get_active_with_att('finder')])
        
    if account.get_preference("account.dataset.show"):
        resources.append("dt")


    form = QueryDatasetForm(request.POST)
    if form.is_valid():
        query = form.cleaned_data.get('search')
        page = form.cleaned_data.get('page')
        order = form.cleaned_data.get('order')
        order_elastic = None
        if order == "0":
            order_elastic = "title"
        elif order == "1":
            order_elastic = "last"

        order_type = form.cleaned_data.get('order_type')
        reverse = order_type.lower() == 'ascending'

        category_filters = form.cleaned_data.get('category_filters')
        if category_filters:
            category_filters=category_filters.split(",")

        builder = ThemeBuilder(preferences, False, language, request.user)
        data = builder.parse()

        if data['federated_accounts_ids']:

            entity = form.cleaned_data.get('entity_filters')
            if entity:
                accounts_ids = [int(entity)]
            else:
                accounts_ids = data['federated_accounts_ids'] + [account.id]

            typef = form.cleaned_data.get('type_filters')
            if typef:
                if typef in resources:
                    resources = [typef]

            queryset = FinderQuerySet(FinderManager(HomeFinder), 
                query = query,
                max_results = 250,
                account_id = accounts_ids,
                resource = resources,
                category_filters=category_filters,
                order = order_elastic,
                reverse = reverse
            ) 

        else:
            all_resources = form.cleaned_data.get('all')
            if not all_resources:
                resources_type = form.cleaned_data.get('type')
                aux = []
                for resource_name in resources_type.split(','):
                    if resource_name in resources:
                        aux.append(resource_name)

                resources=aux

            queryset = FinderQuerySet(FinderManager(HomeFinder), 
                category_filters= category_filters,
                query=query,
                resource=resources,
                max_results=250,
                order=order_elastic,
                reverse = reverse,
                account_id=account.id
            )

        paginator = Paginator(queryset, 25)

        revisions = paginator.page(page and page or 1)
        if data['federated_accounts_ids']:
            add_domains_to_permalinks(revisions.object_list)
        error = ''

        results = revisions.object_list
    else:
        error = 'Invalid data'
        results=[]
        categories=[]

    t = loader.get_template('loadHome/table.json')
    c = Context(locals())
    return HttpResponse(t.render(c), content_type="application/json")
コード例 #3
0
def update_list(request):
    account = request.account
    auth_manager = request.auth_manager
    preferences = account.get_preferences()
    language = request.auth_manager.language

    resources = ["ds", "vz"]
    resources.extend([
        finder.doc_type
        for finder in DatalPluginPoint.get_active_with_att('finder')
    ])

    if account.get_preference("account.dataset.show"):
        resources.append("dt")

    form = QueryDatasetForm(request.POST)
    if form.is_valid():
        query = form.cleaned_data.get('search')
        page = form.cleaned_data.get('page')
        order = form.cleaned_data.get('order')
        order_elastic = None
        if order == "0":
            order_elastic = "title"
        elif order == "1":
            order_elastic = "last"

        order_type = form.cleaned_data.get('order_type')
        reverse = order_type.lower() == 'ascending'

        category_filters = form.cleaned_data.get('category_filters')
        if category_filters:
            category_filters = category_filters.split(",")

        builder = ThemeBuilder(preferences, False, language, request.user)
        data = builder.parse()

        if data['federated_accounts_ids']:

            entity = form.cleaned_data.get('entity_filters')
            if entity:
                accounts_ids = [int(entity)]
            else:
                accounts_ids = data['federated_accounts_ids'] + [account.id]

            typef = form.cleaned_data.get('type_filters')
            if typef:
                if typef in resources:
                    resources = [typef]

            queryset = FinderQuerySet(FinderManager(HomeFinder),
                                      query=query,
                                      max_results=250,
                                      account_id=accounts_ids,
                                      resource=resources,
                                      category_filters=category_filters,
                                      order=order_elastic,
                                      reverse=reverse)

        else:
            all_resources = form.cleaned_data.get('all')
            if not all_resources:
                resources_type = form.cleaned_data.get('type')
                aux = []
                for resource_name in resources_type.split(','):
                    if resource_name in resources:
                        aux.append(resource_name)

                resources = aux

            queryset = FinderQuerySet(FinderManager(HomeFinder),
                                      category_filters=category_filters,
                                      query=query,
                                      resource=resources,
                                      max_results=250,
                                      order=order_elastic,
                                      reverse=reverse,
                                      account_id=account.id)

        paginator = Paginator(queryset, 25)

        revisions = paginator.page(page and page or 1)
        if data['federated_accounts_ids']:
            add_domains_to_permalinks(revisions.object_list)
        error = ''

        results = revisions.object_list
    else:
        error = 'Invalid data'
        results = []
        categories = []

    t = loader.get_template('loadHome/table.json')
    c = Context(locals())
    return HttpResponse(t.render(c), content_type="application/json")
コード例 #4
0
ファイル: views.py プロジェクト: berserkwarwolf/datal
def update_list(request):
    account         = request.account
    auth_manager    = request.auth_manager
    preferences     = account.get_preferences()
    language        = request.auth_manager.language

    form = QueryDatasetForm(request.POST)
    if form.is_valid():
        query = form.cleaned_data.get('search')
        page = form.cleaned_data.get('page')
        order = form.cleaned_data.get('order')
        order_type = form.cleaned_data.get('order_type')

        resources = ['ds', 'db', 'vz', 'dt']
        category_filters = form.cleaned_data.get('category_filters')
        if category_filters:
            category_filters=category_filters.split(",")

        builder = ThemeBuilder(preferences, False, language, account)
        data = builder.parse()

        if data['federated_accounts_ids']:

            entity = form.cleaned_data.get('entity_filters')
            if entity:
                accounts_ids = [int(entity)]
            else:
                accounts_ids = data['federated_accounts_ids'] + [account.id]

            typef = form.cleaned_data.get('type_filters')
            if typef:
                resources = [typef]

            queryset = FinderQuerySet(FinderManager(HomeFinder), 
                query = query,
                max_results = 250,
                account_id = accounts_ids,
                resource = resources,
                category_filters=category_filters,
                order = order,
                order_type = order_type
            ) 

        else:
            all_resources = form.cleaned_data.get('all')
            if not all_resources:
                resources_type = form.cleaned_data.get('type')
                resources = []
                for resource_name in resources_type.split(','):
                    resources.append(resource_name)

            queryset = FinderQuerySet(FinderManager(HomeFinder), 
                category_filters= category_filters,
                query=query,
                resource=resources,
                max_results=250,
                order=order,
                order_type=order_type,
                account_id=account.id
            )

        paginator = Paginator(queryset, 25)

        revisions = paginator.page(page and page or 1)
        if data['federated_accounts_ids']:
            add_domains_to_permalinks(revisions.object_list)
        error = ''

        results = revisions.object_list
    else:
        error = 'Invalid data'
        results=[]
        categories=[]

    t = loader.get_template('loadHome/table.json')
    c = Context(locals())
    return HttpResponse(t.render(c), content_type="application/json")