Example #1
0
def draw_order(request, catalog_id='', slug=''):
    catalog = None
    if catalog_id:
        catalog = get_object_or_404(ZCatalog, id=catalog_id)
    elif slug:
        catalog = get_object_or_404(ZCatalog, latin_title=slug)
    else:
        raise Http404()

    id = request.GET.get('id', None)
    if not id:
        raise Http404()


    (zgate_form, cookies) = zworker.get_zgate_form(
        zgate_url=catalog.url,
        xml=catalog.xml,
        xsl=catalog.xsl,
        cookies=request.COOKIES,
        username='******',
        password='******',
    )
    session_id = zworker.get_zgate_session_id(zgate_form)
    form_params =  zworker.get_form_dict(zgate_form)
    del(form_params['scan'])
    form_params['use_1']='12:1.2.840.10003.3.1'
    form_params['term_1']= id
    result = zworker.request(catalog.url, data=form_params, cookies=cookies)

    if  result[0].decode('utf-8').find(u'id="%s' % (id,)) >= 0:
        link = catalog.url + '?preorder+%s+1+default+1+1.2.840.10003.5.28+rus' % session_id
        return redirect(link)
    return HttpResponse(u'Ok')
Example #2
0
def make_saved_request(request, request_id=''):
    saved_request = get_object_or_404(SavedRequest,id=request_id, user = request.user)


    (zgate_form, cookies) = zworker.get_zgate_form(
        zgate_url=saved_request.zcatalog.url,
        xml=saved_request.zcatalog.xml,
        xsl=saved_request.zcatalog.xsl,
        cookies=request.COOKIES
        #        username=username,
        #        password=password
    )
    session_id = zworker.get_zgate_session_id(zgate_form)
    get_params = []
    get_params.append(urlquote('zstate') + '=' + urlquote('action'))
    get_params.append(urlquote('ACTION') + '=' + urlquote('SEARCH'))
    get_params.append(urlquote('SESSION_ID') + '=' + urlquote(session_id))
    get_params.append(urlquote('LANG') + '=' + urlquote(saved_request.zcatalog.default_lang))
    get_params.append(urlquote('DBNAME') + '=' + urlquote(saved_request.zurls))
    get_params.append(urlquote('TERM_1') + '=' + urlquote(saved_request.query))
    get_params.append(urlquote('ESNAME') + '=' + urlquote('B'))
    get_params.append(urlquote('MAXRECORDS') + '=' + urlquote('20'))
    get_params.append(urlquote('CHAR_SET') + '=' + urlquote('UTF-8'))
    get_params.append(urlquote('RECSYNTAX') + '=' + urlquote('1.2.840.10003.5.28'))

    link = reverse('zgate:zgate_index', args=(saved_request.zcatalog.id,)) + '?' + '&'.join(get_params)

    response = redirect(link)
    return set_cookies_to_response(cookies, response)
Example #3
0
def make_saved_request(request, request_id=''):
    saved_request = get_object_or_404(SavedRequest,
                                      id=request_id,
                                      user=request.user)

    (zgate_form, cookies) = zworker.get_zgate_form(
        zgate_url=saved_request.zcatalog.url,
        xml=saved_request.zcatalog.xml,
        xsl=saved_request.zcatalog.xsl,
        cookies=request.COOKIES
        #        username=username,
        #        password=password
    )
    session_id = zworker.get_zgate_session_id(zgate_form)
    get_params = []
    get_params.append(urlquote('zstate') + '=' + urlquote('action'))
    get_params.append(urlquote('ACTION') + '=' + urlquote('SEARCH'))
    get_params.append(urlquote('SESSION_ID') + '=' + urlquote(session_id))
    get_params.append(
        urlquote('LANG') + '=' + urlquote(saved_request.zcatalog.default_lang))
    get_params.append(urlquote('DBNAME') + '=' + urlquote(saved_request.zurls))
    get_params.append(urlquote('TERM_1') + '=' + urlquote(saved_request.query))
    get_params.append(urlquote('ESNAME') + '=' + urlquote('B'))
    get_params.append(urlquote('MAXRECORDS') + '=' + urlquote('20'))
    get_params.append(urlquote('CHAR_SET') + '=' + urlquote('UTF-8'))
    get_params.append(
        urlquote('RECSYNTAX') + '=' + urlquote('1.2.840.10003.5.28'))

    link = reverse('zgate:zgate_index', args=(
        saved_request.zcatalog.id, )) + '?' + '&'.join(get_params)

    response = redirect(link)
    return set_cookies_to_response(cookies, response)
Example #4
0
def draw_order(request, catalog_id='', slug=''):
    catalog = None
    if catalog_id:
        catalog = get_object_or_404(ZCatalog, id=catalog_id)
    elif slug:
        catalog = get_object_or_404(ZCatalog, latin_title=slug)
    else:
        raise Http404()

    id = request.GET.get('id', None)
    if not id:
        raise Http404()

    (zgate_form, cookies) = zworker.get_zgate_form(
        zgate_url=catalog.url,
        xml=catalog.xml,
        xsl=catalog.xsl,
        cookies=request.COOKIES,
        username='******',
        password='******',
    )
    session_id = zworker.get_zgate_session_id(zgate_form)
    form_params = zworker.get_form_dict(zgate_form)
    del (form_params['scan'])
    form_params['use_1'] = '12:1.2.840.10003.3.1'
    form_params['term_1'] = id
    result = zworker.request(catalog.url, data=form_params, cookies=cookies)

    if result[0].decode('utf-8').find(u'id="%s' % (id, )) >= 0:
        link = catalog.url + '?preorder+%s+1+default+1+1.2.840.10003.5.28+rus' % session_id
        return redirect(link)
    return HttpResponse(u'Ok')
Example #5
0
def simple_search(request):
    q = request.GET.get('text', None)
    if q:
        zcatalog = get_object_or_404(ZCatalog, latin_title='allbases')
        (zgate_form, cookies) = zworker.get_zgate_form(
            zgate_url=zcatalog.url,
            xml=zcatalog.xml,
            xsl=zcatalog.xsl,
            entry_point='/',
            cookies=request.COOKIES
        )
        session_id = zworker.get_zgate_session_id(zgate_form)
        get_params = []
        get_params.append(urlquote('zstate') + '=' + urlquote('action'))
        get_params.append(urlquote('ACTION') + '=' + urlquote('SEARCH'))
        get_params.append(urlquote('SESSION_ID') + '=' + urlquote(session_id))
        get_params.append(urlquote('LANG') + '=' + urlquote(zcatalog.default_lang))
        get_params.append(urlquote('DBNAME') + '=' + urlquote('books,pokrovsk_br,civil_press,languages,notes,periodics,analytics,arts,staff,kraychel,ural_el'))

        get_params.append(urlquote('TERM_1') + '=' + urlquote('%s[1,4:1.2.840.10003.3.1,2,0,4,0,5,1]' % q))
        get_params.append(urlquote('ESNAME') + '=' + urlquote('B'))
        get_params.append(urlquote('MAXRECORDS') + '=' + urlquote('20'))
        get_params.append(urlquote('CHAR_SET') + '=' + urlquote('UTF-8'))
        get_params.append(urlquote('RECSYNTAX') + '=' + urlquote('1.2.840.10003.5.28'))

        link = reverse('zgate_slug_index', args=(zcatalog.latin_title,)) + '?' + '&'.join(get_params)

        response = redirect(link)
        return set_cookies_to_response(cookies, response)
    else:
        return HttpResponse(u'Указаны неправильные параметры')
Example #6
0
def index(request, catalog_id='', slug=''):
    catalog = None
    if catalog_id:
        catalog = get_object_or_404(ZCatalog, id=catalog_id)
    elif slug:
        catalog = get_object_or_404(ZCatalog, latin_title=slug)
    else:
        raise Http404()


    checker = ObjectPermissionChecker(request.user)
    if not checker.has_perm('view_zcatalog', catalog):
        return HttpResponse(u'Доступ запрещен')

    if not catalog.can_search:
        return HttpResponse(u"Каталог не доступен для поиска.")

    zgate_url = catalog.url
    if request.method == 'POST' and 'SESSION_ID' in request.POST:

        log_search_request(request, catalog)
        (result, cookies) = zworker.request(zgate_url, data=request.POST, cookies=request.COOKIES)
        response =  render_search_result(request, catalog, zresult=result, )
        return set_cookies_to_response(cookies,response)

    else:
        if 'zstate' in request.GET: #а тут пользователь уже начал щелкать по ссылкам

            if 'ACTION' in request.GET and request.GET['ACTION'] == 'pq':
                return save_requests(request, catalog)

            url = zgate_url + '?' + request.GET['zstate'].replace(' ', '+')

            vars = request.GET['zstate'].split(' ')
            cookies = {}
            if vars[0] == 'form':

                try:
                    (zresult, cookies) = zworker.request(url, cookies=request.COOKIES)
                except Exception:
                    return HttpResponse(u'Получен некорретный ответ. Попробуйте осуществить поиск еще раз.')

                response = render_form(request, zresult=zresult, catalog=catalog)
                return set_cookies_to_response(cookies, response)

            elif vars[0] == 'present':
                if vars[4] == '1' and vars[5] == 'F':

                    try:
                        response = render_detail(request, catalog)
                    except Exception:
                        return HttpResponse(u'Сервер не может корректно отобразить результат. Повторите запрос еще раз.')

                    return set_cookies_to_response(cookies,response)

                response = render_search_result(request, catalog)
                return set_cookies_to_response(cookies,response)
            else:
                response = render_search_result(request, catalog)
                return set_cookies_to_response(cookies, response)
        else: #значит только инициализация формы
        #            if not catalog.can_search:
        #                return Htt

            (zgate_form, cookies) = zworker.get_zgate_form(
                zgate_url=zgate_url,
                xml=catalog.xml,
                xsl=catalog.xsl,
                cookies=request.COOKIES
            )

            response = render_form(request, zgate_form, catalog)
            return set_cookies_to_response(cookies, response)
Example #7
0
def index(request, catalog_id='', slug=''):
    catalog = None
    if catalog_id:
        catalog = get_object_or_404(ZCatalog, id=catalog_id)
    elif slug:
        catalog = get_object_or_404(ZCatalog, latin_title=slug)
    else:
        raise Http404()

    checker = ObjectPermissionChecker(request.user)
    if not checker.has_perm('view_zcatalog', catalog):
        return HttpResponse(u'Доступ запрещен')

    if not catalog.can_search:
        return HttpResponse(u"Каталог не доступен для поиска.")

    zgate_url = catalog.url
    if request.method == 'POST' and 'SESSION_ID' in request.POST:

        log_search_request(request, catalog)
        (result, cookies) = zworker.request(zgate_url,
                                            data=request.POST,
                                            cookies=request.COOKIES)
        response = render_search_result(
            request,
            catalog,
            zresult=result,
        )
        return set_cookies_to_response(cookies, response)

    else:
        if 'zstate' in request.GET:  #а тут пользователь уже начал щелкать по ссылкам

            if 'ACTION' in request.GET and request.GET['ACTION'] == 'pq':
                return save_requests(request, catalog)

            url = zgate_url + '?' + request.GET['zstate'].replace(' ', '+')

            vars = request.GET['zstate'].split(' ')
            cookies = {}
            if vars[0] == 'form':

                try:
                    (zresult,
                     cookies) = zworker.request(url, cookies=request.COOKIES)
                except Exception:
                    return HttpResponse(
                        u'Получен некорретный ответ. Попробуйте осуществить поиск еще раз.'
                    )

                response = render_form(request,
                                       zresult=zresult,
                                       catalog=catalog)
                return set_cookies_to_response(cookies, response)

            elif vars[0] == 'present':
                if vars[4] == '1' and vars[5] == 'F':

                    try:
                        response = render_detail(request, catalog)
                    except Exception:
                        return HttpResponse(
                            u'Сервер не может корректно отобразить результат. Повторите запрос еще раз.'
                        )

                    return set_cookies_to_response(cookies, response)

                response = render_search_result(request, catalog)
                return set_cookies_to_response(cookies, response)
            else:
                response = render_search_result(request, catalog)
                return set_cookies_to_response(cookies, response)
        else:  #значит только инициализация формы
            #            if not catalog.can_search:
            #                return Htt

            (zgate_form,
             cookies) = zworker.get_zgate_form(zgate_url=zgate_url,
                                               xml=catalog.xml,
                                               xsl=catalog.xsl,
                                               cookies=request.COOKIES)

            response = render_form(request, zgate_form, catalog)
            return set_cookies_to_response(cookies, response)