Skip to content

Mammalpart

MammalPartView

Bases: View

View for mammal part specimen records.

Source code in dataimporter/emu/views/mammalpart.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
class MammalPartView(View):
    """
    View for mammal part specimen records.
    """

    def is_member(self, record: SourceRecord) -> FilterResult:
        """
        Filters the given record, determining whether it should be included in the
        mammal part view or not.

        :param record: the record to filter
        :return: a FilterResult object
        """

        if record.get_first_value('ColRecordType', lower=True) != 'mammal group part':
            return INVALID_TYPE

        if record.get_first_value('ColDepartment', lower=True) != 'zoology':
            return INVALID_DEPARTMENT

        if record.get_first_value('ColSubDepartment', lower=True) != 'ls mammals':
            return INVALID_SUB_DEPARTMENT

        if 'CatKindOfObject' not in record:
            return MISSING_KIND_OF_OBJECT

        return SUCCESS_RESULT

    def is_publishable(self, record: SourceRecord) -> FilterResult:
        """
        Filters the given record, determining whether it matches the publishing rules
        for mammal parts.

        :param record: the record to filter
        :return: a FilterResult object
        """
        if not is_web_published(record):
            return NO_PUBLISH

        if record.get_first_value('SecRecordStatus') in DISALLOWED_STATUSES:
            return INVALID_STATUS

        return SUCCESS_RESULT

    @strip_empty
    def transform(self, record: SourceRecord) -> dict:
        """
        Converts the record's raw data to a dict which will be the data presented on the
        Data Portal.

        :param record: the record to project
        :return: a dict containing the data for this record that should be displayed on
            the Data Portal
        """
        # todo: fields names
        return {
            'part': record.get_first_value('CatKindOfObject', 'PrtType'),
        }

is_member(record)

Filters the given record, determining whether it should be included in the mammal part view or not.

Parameters:

Name Type Description Default
record SourceRecord

the record to filter

required

Returns:

Type Description
FilterResult

a FilterResult object

Source code in dataimporter/emu/views/mammalpart.py
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
def is_member(self, record: SourceRecord) -> FilterResult:
    """
    Filters the given record, determining whether it should be included in the
    mammal part view or not.

    :param record: the record to filter
    :return: a FilterResult object
    """

    if record.get_first_value('ColRecordType', lower=True) != 'mammal group part':
        return INVALID_TYPE

    if record.get_first_value('ColDepartment', lower=True) != 'zoology':
        return INVALID_DEPARTMENT

    if record.get_first_value('ColSubDepartment', lower=True) != 'ls mammals':
        return INVALID_SUB_DEPARTMENT

    if 'CatKindOfObject' not in record:
        return MISSING_KIND_OF_OBJECT

    return SUCCESS_RESULT

is_publishable(record)

Filters the given record, determining whether it matches the publishing rules for mammal parts.

Parameters:

Name Type Description Default
record SourceRecord

the record to filter

required

Returns:

Type Description
FilterResult

a FilterResult object

Source code in dataimporter/emu/views/mammalpart.py
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
def is_publishable(self, record: SourceRecord) -> FilterResult:
    """
    Filters the given record, determining whether it matches the publishing rules
    for mammal parts.

    :param record: the record to filter
    :return: a FilterResult object
    """
    if not is_web_published(record):
        return NO_PUBLISH

    if record.get_first_value('SecRecordStatus') in DISALLOWED_STATUSES:
        return INVALID_STATUS

    return SUCCESS_RESULT

transform(record)

Converts the record's raw data to a dict which will be the data presented on the Data Portal.

Parameters:

Name Type Description Default
record SourceRecord

the record to project

required

Returns:

Type Description
dict

a dict containing the data for this record that should be displayed on the Data Portal

Source code in dataimporter/emu/views/mammalpart.py
60
61
62
63
64
65
66
67
68
69
70
71
72
73
@strip_empty
def transform(self, record: SourceRecord) -> dict:
    """
    Converts the record's raw data to a dict which will be the data presented on the
    Data Portal.

    :param record: the record to project
    :return: a dict containing the data for this record that should be displayed on
        the Data Portal
    """
    # todo: fields names
    return {
        'part': record.get_first_value('CatKindOfObject', 'PrtType'),
    }