Skip to content

Commit c298f65

Browse files
committed
762_duplicate_literature_references
1 parent c402416 commit c298f65

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

app/main/checks/report_checks/literature_references.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ def __init__(self, file_info, min_ref=1, max_ref=1000, headers_map=None):
1212
super().__init__(file_info)
1313
self.headers = []
1414
self.literature_header = None
15+
self.literature_reference_text = []
1516
self.name_pattern = r'список[ \t]*(использованных|использованной|)[ \t]*(источников|литературы)'
1617
if headers_map:
1718
self.config = headers_map
@@ -55,6 +56,10 @@ def check(self):
5556
if not number_of_sources:
5657
return answer(False,
5758
f'В Списке использованных источников не найдено ни одного источника.<br><br>Проверьте корректность использования нумированного списка.')
59+
60+
if not self.checking_duplicate_sources():
61+
return answer(False, 'В списке используемых источников есть дублирующиеся источники.')
62+
5863
references, ref_sequence = self.search_references(start_literature_par)
5964
all_numbers = set(range(1, number_of_sources + 1))
6065
if len(references.symmetric_difference(all_numbers)) == 0:
@@ -124,6 +129,12 @@ def add_references(self, k, prev_ref, array_of_references, ref_sequence):
124129
array_of_references.add(k)
125130
return prev_ref
126131

132+
def checking_duplicate_sources(self):
133+
for source in self.literature_reference_text:
134+
if self.literature_reference_text.count(source) >= 2:
135+
return False
136+
return True
137+
127138
def find_start_paragraph(self):
128139
start_index = 0
129140
for i in range(len(self.file.paragraphs)):
@@ -142,6 +153,7 @@ def count_sources_vkr(self, header):
142153
break
143154
# if re.search(f"дата обращения", child["text"].lower()):
144155
literature_counter += 1
156+
self.literature_reference_text.append(child["text"])
145157
return literature_counter
146158

147159
def count_sources(self):
@@ -165,6 +177,7 @@ def count_sources(self):
165177
for ind in range(first_string + 1, last_string):
166178
if re.match(f"{literature_counter + 1}.", one_page[ind]):
167179
literature_counter += 1
180+
self.literature_reference_text.append(one_page[ind])
168181
return literature_counter
169182

170183
def search_literature_start_pdf(self):

0 commit comments

Comments
 (0)