def test_interp(self, fetch_toc): fetch_toc.return_value = [{ 'index': ['200', '1'], 'is_section': True }, { 'index': ['200', '2'], 'is_section': True }, { 'index': ['200', 'A'], 'is_appendix': True }] self.assertEqual('200-Subpart-Interp', SectionUrl().interp(['200', '1', 'Interp'], 'vvvv')) self.assertEqual('200-Subpart-Interp', SectionUrl().interp(['200', '2', 'Interp'], 'vvvv')) self.assertEqual('200-Appendices-Interp', SectionUrl().interp(['200', 'A', 'Interp'], 'vvvv')) fetch_toc.return_value = [{ 'index': ['200', 'Subpart', 'A'], 'is_subpart': True, 'sub_toc': [{ 'index': ['200', '1'], 'is_section': True }, { 'index': ['200', '2'], 'is_section': True }] }, { 'index': ['200', 'A'], 'is_appendix': True }, { 'index': ['200', 'Interp'], 'is_supplement': True, 'sub_toc': [{ 'index': ['200', 'Interp', 'h1'], 'section_id': '200-Interp-h1' }, { 'index': ['200', 'Subpart', 'A', 'Interp'], 'is_subterp': True }, { 'index': ['200', 'Appendices', 'Interp'], 'is_subterp': True }] }] self.assertEqual('200-Subpart-A-Interp', SectionUrl().interp(['200', '1', 'Interp'], 'vvvv')) self.assertEqual('200-Subpart-A-Interp', SectionUrl().interp(['200', '2', 'Interp'], 'vvvv')) self.assertEqual('200-Appendices-Interp', SectionUrl().interp(['200', 'A', 'Interp'], 'vvvv')) self.assertEqual('200-Interp-h1', SectionUrl().interp(['200', 'Interp', 'h1'], 'vvvv')) self.assertTrue( '200-Subpart-A', SectionUrl().interp(['200', '2', 'e', 'Interp', '1'], 'verver'))
def set_chrome_context(self, context, reg_part, version): context['reg_part'] = reg_part context['history'] = fetch_grouped_history(reg_part) toc = fetch_toc(reg_part, version) for el in toc: el['url'] = SectionUrl().of(el['index'], version, self.partial_class.sectional_links) for sub in el.get('sub_toc', []): sub['url'] = SectionUrl().of( sub['index'], version, self.partial_class.sectional_links) context['TOC'] = toc context['meta'] = utils.regulation_meta(reg_part, version) context['version_switch_view'] = self.version_switch_view context['diff_redirect_label'] = self.diff_redirect_label( context['label_id'], toc)
def __init__(self, layer): self.layer = layer self.template = loader.get_template( 'regulations/layers/definition_citation.html') self.sectional = False self.version = None self.rev_urls = SectionUrl() self.rendered = {} # precomputation for def_struct in self.layer['referenced'].values(): def_struct['reference_split'] = def_struct['reference'].split('-')
def get_context_data(self, **kwargs): # We don't want to run the content data of PartialView -- it assumes # we will be applying layers context = super(PartialView, self).get_context_data(**kwargs) context['q'] = self.request.GET.get('q') context['version'] = self.request.GET.get('version') context['regulation'] = context['label_id'].split('-')[0] try: page = int(self.request.GET.get('page', '0')) except ValueError: page = 0 api_page = page // (API_PAGE_SIZE / PAGE_SIZE) context['warnings'] = [] if not context['q']: context['warnings'].append('Please provide a query.') if not context['version']: context['warnings'].append('Please provide a version.') if context['warnings']: results = {'results': [], 'total_hits': 0} else: results = api_reader.ApiReader().search(context['q'], context['version'], context['regulation'], api_page) self.reduce_results(results, page) section_url = SectionUrl() for result in results['results']: result['header'] = node_types.label_to_text(result['label']) if 'title' in result: result['header'] += ' ' + title(result['title']) result['section_id'] = section_url.view_label_id( result['label'], context['version']) result['url'] = section_url.fetch(result['label'], context['version'], sectional=True) context['results'] = results for version in fetch_grouped_history(context['regulation']): for notice in version['notices']: if notice['document_number'] == context['version']: context['version_by_date'] = notice['effective_on'] self.add_prev_next(page, context) self.final_context = context return context
def get_context_data(self, **kwargs): # We don't want to run the content data of PartialView -- it assumes # we will be applying layers context = super(PartialView, self).get_context_data(**kwargs) context['regulation'] = context['label_id'].split('-')[0] try: page = int(self.request.GET.get('page', '0')) except ValueError: page = 0 # API page size is API_PAGE_SIZE, but we show only PAGE_SIZE api_page = page // (API_PAGE_SIZE / PAGE_SIZE) page_idx = (page % (API_PAGE_SIZE / PAGE_SIZE)) * PAGE_SIZE results = api_reader.ApiReader().search(context['q'], context['version'], context['regulation'], api_page) # Ignore results found in the root (i.e. not a section), adjust # the number of results accordingly. original_count = len(results['results']) results['results'] = [ r for r in results['results'] if len(r['label']) > 1 ] num_results_ignored = original_count - len(results['results']) results['total_hits'] -= num_results_ignored results['results'] = results['results'][page_idx:page_idx + PAGE_SIZE] section_url = SectionUrl() for result in results['results']: result['header'] = label_to_text(result['label']) if 'title' in result: result['header'] += ' ' + title(result['title']) result['section_id'] = section_url.view_label_id( result['label'], context['version']) result['url'] = section_url.fetch(result['label'], context['version'], sectional=True) context['results'] = results for version in fetch_grouped_history(context['regulation']): for notice in version['notices']: if notice['document_number'] == context['version']: context['version_by_date'] = notice['effective_on'] self.add_prev_next(page, context) self.final_context = context return context
def process_cfr_results(results, version): """Modify the results of a search over the CFR by adding a human-readable label, appropriate links, and version information""" section_url = SectionUrl() results = deepcopy(results) for result in results['results']: add_cfr_headers(result) result['section_id'] = section_url.view_label_id( result['label'], version) result['url'] = section_url.fetch(result['label'], version, sectional=True) return results
def process_cfr_results(results, version): """Modify the results of a search over the CFR by adding a human-readable label, appropriate links, and version information""" section_url = SectionUrl() results = deepcopy(results) for result in results['results']: result['header'] = node_types.label_to_text(result['label']) if 'title' in result: result['header'] += ' ' + title(result['title']) result['section_id'] = section_url.view_label_id( result['label'], version) result['url'] = section_url.fetch(result['label'], version, sectional=True) return results
def set_chrome_context(self, context, reg_part, version): context['reg_part'] = reg_part context['history'] = fetch_grouped_history(reg_part) toc = fetch_toc(reg_part, version) for el in toc: el['url'] = SectionUrl().of(el['index'], version, self.partial_class.sectional_links) for sub in el.get('sub_toc', []): sub['url'] = SectionUrl().of( sub['index'], version, self.partial_class.sectional_links) context['TOC'] = toc context['meta'] = utils.regulation_meta(reg_part, version) # Throw 404 if regulation doesn't exist if not context['meta']: raise error_handling.MissingContentException() context['version_span'] = version_span( context['history'], context['meta']['effective_date']) context['version_switch_view'] = self.version_switch_view context['diff_redirect_label'] = self.diff_redirect_label( context['label_id'], toc)
def add_diff_content(self, context): context['from_version'] = self.request.GET.get('from_version', context['version']) context['left_version'] = context['version'] context['right_version'] = \ context['main_content_context']['newer_version'] from_version = self.request.GET.get('from_version', context['version']) context['TOC'] = context['main_content_context']['TOC'] # Add reference to the first subterp, so we know how to redirect toc = fetch_toc(context['label_id'].split('-')[0], from_version) for entry in toc: if entry.get('is_supplement') and entry.get('sub_toc'): el = entry['sub_toc'][0] el['url'] = SectionUrl().of(el['index'], from_version, self.partial_class.sectional_links) context['first_subterp'] = el return context
def __init__(self, layer): self.layer = layer self.sectional = False self.version = None self.rev_urls = SectionUrl() self.rendered = {}
def __init__(self, layer, version=None): self.layer = layer self.version = version self.section_url = SectionUrl() self.root_interp_label = None self.partial_view = None
def __init__(self, layer): self.layer = layer self.sectional = False self.version = None self.section_url = SectionUrl()
def __init__(self, layer, version=None): self.layer = layer self.version = version self.section_url = SectionUrl()