@@ -57,16 +57,9 @@ def __init__(self):
57
57
def populate_model (self , dbstate , citation , form_event , model ):
58
58
db = dbstate .db
59
59
parent = model .append (None , (_ ("Add Primary Name citation" ), None , None ))
60
- for item in db .find_backlink_handles (form_event .get_handle (),
61
- include_classes = ['Person' ]):
62
- handle = item [1 ]
63
- person = db .get_person_from_handle (handle )
64
- for event_ref in person .get_event_ref_list ():
65
- if event_ref .ref == form_event .get_handle ():
66
- for attr in event_ref .get_attribute_list ():
67
- if (attr .get_type () == "Name" ): # Form specific _attribute name
68
- model .append (parent , (name_displayer .display (person ), attr .get_value (),
69
- lambda dbstate , uistate , track , citation_handle = citation .handle , person_handle = person .handle : PrimaryNameCitation .command (dbstate , uistate , track , citation_handle , person_handle )))
60
+ for (person , attr ) in ActionBase .get_form_person_attr (db , form_event .get_handle (), 'Name' ):
61
+ model .append (parent , (name_displayer .display (person ), attr .get_value (),
62
+ lambda dbstate , uistate , track , citation_handle = citation .handle , person_handle = person .handle : PrimaryNameCitation .command (dbstate , uistate , track , citation_handle , person_handle )))
70
63
71
64
def command (dbstate , uistate , track , citation_handle , person_handle ):
72
65
db = dbstate .db
@@ -85,34 +78,27 @@ def populate_model(self, dbstate, citation, form_event, model):
85
78
# if there is no date on the form, no actions can be performed
86
79
if form_event .get_date_object ():
87
80
parent = model .append (None , (_ ("Add Birth event" ), None , None ))
88
- for item in db .find_backlink_handles (form_event .get_handle (),
89
- include_classes = ['Person' ]):
90
- handle = item [1 ]
91
- person = db .get_person_from_handle (handle )
92
- for event_ref in person .get_event_ref_list ():
93
- if event_ref .ref == form_event .get_handle ():
94
- for attr in event_ref .get_attribute_list ():
95
- if (attr .get_type () == "Age" ): # Form specific _attribute name
96
- age_string = attr .get_value ()
97
- if age_string and represents_int (age_string ):
98
- age = int (age_string )
99
- if age :
100
- birth_date = form_event .get_date_object () - age
101
- birth_date .make_vague ()
102
- # Age was rounded down to the nearest five years for those aged 15 or over
103
- # In practice this rule was not always followed by enumerators
104
- if age < 15 :
105
- # no adjustment required
106
- birth_date .set_modifier (Date .MOD_ABOUT )
107
- elif not birth_date .is_compound ():
108
- # in theory, birth_date will never be compound since 1841 census date was 1841-06-06. Let's handle it anyway.
109
- # create a compound range spanning the possible birth years
110
- birth_range = (birth_date - 5 ).get_dmy () + (False ,) + birth_date .get_dmy () + (False ,)
111
- birth_date .set (Date .QUAL_NONE , Date .MOD_RANGE , birth_date .get_calendar (), birth_range , newyear = birth_date .get_new_year ())
112
- birth_date .set_quality (Date .QUAL_CALCULATED )
81
+ for (person , attr ) in ActionBase .get_form_person_attr (db , form_event .get_handle (), 'Age' ):
82
+ age_string = attr .get_value ()
83
+ if age_string and represents_int (age_string ):
84
+ age = int (age_string )
85
+ if age :
86
+ birth_date = form_event .get_date_object () - age
87
+ birth_date .make_vague ()
88
+ # Age was rounded down to the nearest five years for those aged 15 or over
89
+ # In practice this rule was not always followed by enumerators
90
+ if age < 15 :
91
+ # no adjustment required
92
+ birth_date .set_modifier (Date .MOD_ABOUT )
93
+ elif not birth_date .is_compound ():
94
+ # in theory, birth_date will never be compound since 1841 census date was 1841-06-06. Let's handle it anyway.
95
+ # create a compound range spanning the possible birth years
96
+ birth_range = (birth_date - 5 ).get_dmy () + (False ,) + birth_date .get_dmy () + (False ,)
97
+ birth_date .set (Date .QUAL_NONE , Date .MOD_RANGE , birth_date .get_calendar (), birth_range , newyear = birth_date .get_new_year ())
98
+ birth_date .set_quality (Date .QUAL_CALCULATED )
113
99
114
- model .append (parent , (name_displayer .display (person ), date_displayer .display (birth_date ),
115
- lambda dbstate , uistate , track , citation_handle = citation .handle , person_handle = person .handle , birth_date_ = birth_date : ActionBase .add_event_to_person (dbstate , uistate , track , person_handle , EventType .BIRTH , birth_date_ , None , citation_handle , EventRoleType .PRIMARY )))
100
+ model .append (parent , (name_displayer .display (person ), date_displayer .display (birth_date ),
101
+ lambda dbstate , uistate , track , citation_handle = citation .handle , person_handle = person .handle , birth_date_ = birth_date : ActionBase .add_event_to_person (dbstate , uistate , track , person_handle , EventType .BIRTH , birth_date_ , None , citation_handle , EventRoleType .PRIMARY )))
116
102
117
103
class OccupationEvent (ActionBase ):
118
104
def __init__ (self ):
@@ -121,16 +107,9 @@ def __init__(self):
121
107
122
108
def populate_model (self , dbstate , citation , form_event , model ):
123
109
db = dbstate .db
124
- parent = model .append (None , (_ ("Add Occupation event" ), None , None ))
125
- for item in db .find_backlink_handles (form_event .get_handle (),
126
- include_classes = ['Person' ]):
127
- handle = item [1 ]
128
- person = db .get_person_from_handle (handle )
129
- for event_ref in person .get_event_ref_list ():
130
- if event_ref .ref == form_event .get_handle ():
131
- for attr in event_ref .get_attribute_list ():
132
- if (attr .get_type () == "Occupation" ): # Form specific _attribute name
133
- occupation = attr .get_value ()
134
- if (occupation ) :
135
- model .append (parent , (name_displayer .display (person ), occupation ,
136
- lambda dbstate , uistate , track , citation_handle = citation .handle , person_handle = person .handle , occupation_ = occupation : ActionBase .add_event_to_person (dbstate , uistate , track , person_handle , EventType .OCCUPATION , form_event .get_date_object (), occupation_ , citation_handle , EventRoleType .PRIMARY )))
110
+ parent = model .append (None , (_ ('Add Occupation event' ), None , None ))
111
+ for (person , attr ) in ActionBase .get_form_person_attr (db , form_event .get_handle (), 'Occupation' ):
112
+ occupation = attr .get_value ()
113
+ if (occupation ) :
114
+ model .append (parent , (name_displayer .display (person ), occupation ,
115
+ lambda dbstate , uistate , track , citation_handle = citation .handle , person_handle = person .handle , occupation_ = occupation : ActionBase .add_event_to_person (dbstate , uistate , track , person_handle , EventType .OCCUPATION , form_event .get_date_object (), occupation_ , citation_handle , EventRoleType .PRIMARY )))
0 commit comments