Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ElkarteakDetailView(DetailView):
- model = Herria
- template_name = 'elkarteak/herria_detail.html'
- search_url = 'http://opendata.euskadi.net/r01hSearchResultWar/r01hPresentationXML.jsp?r01kLang=es&r01kQry=tC:euskadi;tF:registros_administrativos;tT:asociacion;m:documentLanguage.EQ.es,recTerritoryCode.EQ.%(probintzia_id)s,recTownCode.EQ.%(herria_id)s;o:documentCreateDate.DESC;pp:r01PageSize.100&r01kPgCmd=next&r01kSrchSrcId=contenidos.inter'
- def get_context_data(self, **kwargs):
- herria = Herria.objects.get(slug=self.kwargs.get('slug'))
- context = super(ElkarteakDetailView, self).get_context_data(**kwargs)
- search = self.search_url % {'herria_id': herria.euskadinet_code,
- 'probintzia_id': int(herria.probintzia.euskadinet_code)}
- search += u'&r01kTgtPg=' + self.request.GET.get('page', u'1')
- response = requests.get(search)
- elkarteak = []
- current_page = 1
- total_number_of_pages = 1
- if response.status_code == 200:
- try:
- tree = etree.parse(StringIO(response.content))
- results = tree.xpath('/searchSession/searchResultsBySource/searchSourceResults/results')
- if len(results) > 0:
- results = results[0]
- for item in results.findall('item'):
- temp_elk = {}
- for prop in item:
- if prop.tag in ['documentLanguage', 'fileTitle', 'documentWorkAreaRelativePath']:
- temp_elk[prop.tag] = prop.text
- if prop.tag == 'documentMetaData':
- for p in prop:
- temp_elk[p.tag] = p.text
- elkarteak.append(temp_elk)
- navBar = tree.xpath('/searchSession/searchResultsBySource/searchSourceResults/navBar')
- if navBar:
- navBar = navBar[0]
- current_page = navBar.attrib['currentPage']
- total_number_of_pages = navBar.attrib['totalNumberOfPages']
- except:
- log.info('XML parseo errrore')
- context['elkarteak'] = elkarteak
- context['search_url'] = search
- context['current_page'] = int(current_page)
- context['total_pages'] = total_number_of_pages
- context['page_range'] = range(1,int(total_number_of_pages)+1)
- return context
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement