|
1 | 1 | from typing import Optional, List
|
2 | 2 |
|
3 | 3 | from regula.documentreader.webclient.ext.models.text_field import TextField
|
4 |
| -from regula.documentreader.webclient.gen.models import Text as GenText |
| 4 | +from regula.documentreader.webclient.gen.models import LCID, Text as GenText |
5 | 5 |
|
6 | 6 |
|
7 | 7 | class Text(GenText):
|
8 | 8 |
|
9 | 9 | def get_field(self, field_type: int, lcid: int = None) -> Optional[TextField]:
|
| 10 | + result = None |
10 | 11 | for field in self.field_list:
|
11 |
| - if field.field_type == field_type and (not lcid or field.lcid == lcid): |
12 |
| - return field |
13 |
| - return None |
| 12 | + if field.field_type == field_type: |
| 13 | + if lcid is not None and field.lcid == lcid: |
| 14 | + return field |
| 15 | + elif lcid is None and field.lcid == LCID.LATIN: |
| 16 | + return field |
| 17 | + elif lcid is None and result is None: |
| 18 | + result = field |
| 19 | + return result |
14 | 20 |
|
15 | 21 | def get_field_value(self, field_type: int, lcid: int = None) -> Optional[str]:
|
16 | 22 | field = self.get_field(field_type, lcid)
|
17 |
| - if field: |
18 |
| - return field.value |
19 |
| - return None |
| 23 | + return field.value if field else None |
20 | 24 |
|
21 | 25 | def get_field_by_name(self, field_name: str, lcid: int = None) -> Optional[TextField]:
|
| 26 | + result = None |
22 | 27 | for field in self.field_list:
|
23 |
| - if field.field_name == field_name and (not lcid or field.lcid == lcid): |
24 |
| - return field |
25 |
| - return None |
| 28 | + if field.field_name == field_name: |
| 29 | + if lcid is not None and field.lcid == lcid: |
| 30 | + return field |
| 31 | + elif lcid is None and field.lcid == LCID.LATIN: |
| 32 | + return field |
| 33 | + elif lcid is None and result is None: |
| 34 | + result = field |
| 35 | + return result |
26 | 36 |
|
27 | 37 | def get_field_value_by_name(self, field_name: str, lcid: int = None) -> Optional[str]:
|
28 | 38 | field = self.get_field_by_name(field_name, lcid)
|
29 |
| - if field: |
30 |
| - return field.value |
31 |
| - return None |
| 39 | + return field.value if field else None |
32 | 40 |
|
33 | 41 | @GenText.field_list.getter
|
34 | 42 | def field_list(self) -> List[TextField]:
|
|
0 commit comments