Exemple #1
0
    def column_birth_place(self, data):
        index = data[COLUMN_BIRTH]
        if index != -1:
            try:
                local = data[COLUMN_EVENT][index]
                br = EventRef()
                br.unserialize(local)
                event = self.db.get_event_from_handle(br.ref)
                if event:
                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        return escape(place_title)
            except:
                return ''
        
        for event_ref in data[COLUMN_EVENT]:
            er = EventRef()
            er.unserialize(event_ref)
            event = self.db.get_event_from_handle(er.ref)
            etype = event.get_type()
            if (etype in [EventType.BAPTISM, EventType.CHRISTEN] and
                er.get_role() == EventRoleType.PRIMARY):

                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        return "<i>%s</i>" % escape(place_title)
        return ""
Exemple #2
0
    def column_death_place(self, data):
        index = data[COLUMN_DEATH]
        if index != -1:
            try:
                local = data[COLUMN_EVENT][index]
                dr = EventRef()
                dr.unserialize(local)
                event = self.db.get_event_from_handle(dr.ref)
                if event:
                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        return escape(place_title)
            except:
                return ''
        
        for event_ref in data[COLUMN_EVENT]:
            er = EventRef()
            er.unserialize(event_ref)
            event = self.db.get_event_from_handle(er.ref)
            etype = event.get_type()
            if (etype in [EventType.BURIAL, EventType.CREMATION,
                          EventType.CAUSE_DEATH]
                and er.get_role() == EventRoleType.PRIMARY):

                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        return "<i>%s</i>" % escape(place_title)
        return ""
Exemple #3
0
    def column_death_place(self, data):
        index = data[COLUMN_DEATH]
        if index != -1:
            try:
                local = data[COLUMN_EVENT][index]
                dr = EventRef()
                dr.unserialize(local)
                event = self.db.get_event_from_handle(dr.ref)
                if event:
                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        return escape(place_title)
            except:
                return ''

        for event_ref in data[COLUMN_EVENT]:
            er = EventRef()
            er.unserialize(event_ref)
            event = self.db.get_event_from_handle(er.ref)
            etype = event.get_type()
            if (etype in [
                    EventType.BURIAL, EventType.CREMATION,
                    EventType.CAUSE_DEATH
            ] and er.get_role() == EventRoleType.PRIMARY):

                place_title = place_displayer.display_event(self.db, event)
                if place_title:
                    return "<i>%s</i>" % escape(place_title)
        return ""
Exemple #4
0
    def column_birth_place(self, data):
        index = data[COLUMN_BIRTH]
        if index != -1:
            try:
                local = data[COLUMN_EVENT][index]
                br = EventRef()
                br.unserialize(local)
                event = self.db.get_event_from_handle(br.ref)
                if event:
                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        return escape(place_title)
            except:
                return ''

        for event_ref in data[COLUMN_EVENT]:
            er = EventRef()
            er.unserialize(event_ref)
            event = self.db.get_event_from_handle(er.ref)
            etype = event.get_type()
            if (etype in [EventType.BAPTISM, EventType.CHRISTEN]
                    and er.get_role() == EventRoleType.PRIMARY):

                place_title = place_displayer.display_event(self.db, event)
                if place_title:
                    return "<i>%s</i>" % escape(place_title)
        return ""
Exemple #5
0
    def write_event_ref(self, vbox, ename, event):
        if event:
            dobj = event.get_date_object()
            phandle = event.get_place_handle()
            if phandle:
                pname = place_displayer.display_event(self.dbstate.db, event)
            else:
                pname = None

            value = {
                'date' : displayer.display(dobj),
                'place' : pname,
                'event_type' : ename,
                }
        else:
            pname = None
            dobj = None
            value = { 'event_type' : ename, }

        if dobj:
            if pname:
                self.write_data(
                    vbox, _('%(event_type)s: %(date)s in %(place)s') %
                    value)
            else:
                self.write_data(
                    vbox, _('%(event_type)s: %(date)s') % value)
        elif pname:
            self.write_data(
                vbox, _('%(event_type)s: %(place)s') % value)
        else:
            self.write_data(
                vbox, '%(event_type)s:' % value)
Exemple #6
0
    def find_place(self, event):
        """
#        Use the most recent occupation residence.
#        """
        placetxt = " "
        placetxt = _pd.display_event(self.__db, event, self.pl_format)
        return (placetxt[4:-2])
Exemple #7
0
 def column_place(self, data):
     if data[COLUMN_PLACE]:
         event = Event()
         event.unserialize(data)
         return place_displayer.display_event(self.db, event)
     else:
         return ''
Exemple #8
0
    def dump_child_event(self, text, name, event):
        date = ""
        place = ""
        if event:
            date = self._get_date(event.get_date_object())
            place_handle = event.get_place_handle()
            if place_handle:
                place = place_displayer.display_event(self.database, event)

        self.doc.start_row()
        self.doc.start_cell(text)
        self.doc.start_paragraph('FGR-Normal')
        self.doc.end_paragraph()
        self.doc.end_cell()
        self.doc.start_cell('FGR-TextContents')
        self.doc.start_paragraph('FGR-Normal')
        self.doc.write_text(name)
        self.doc.end_paragraph()
        self.doc.end_cell()
        self.doc.start_cell('FGR-TextContents')
        self.doc.start_paragraph('FGR-Normal')
        self.doc.write_text(date)
        self.doc.end_paragraph()
        self.doc.end_cell()
        self.doc.start_cell('FGR-TextContentsEnd')
        self.doc.start_paragraph('FGR-Normal')
        self.doc.write_text(place)
        self.doc.end_paragraph()
        self.doc.end_cell()
        self.doc.end_row()
Exemple #9
0
    def add_event_ref(self, event_ref, spouse=None):
        """
        Add an event to the model.
        """
        self.callman.register_handles({'event': [event_ref.ref]})
        event = self.dbstate.db.get_event_from_handle(event_ref.ref)
        event_date = get_date(event)
        event_sort = '%012d' % event.get_date_object().get_sort_value()
        person_age      = self.column_age(event)
        person_age_sort = self.column_sort_age(event)
        place = place_displayer.display_event(self.dbstate.db, event)

        participants = get_participant_from_event(self.dbstate.db,
                                                  event_ref.ref)

        self.model.add((event.get_handle(),
                        str(event.get_type()),
                        participants,
                        event_date,
                        event_sort,
                        person_age,
                        person_age_sort,
                        place,
                        event.get_description(),
                        str(event_ref.get_role())))
Exemple #10
0
    def add_event_ref(self, event_ref, spouse=None, name=""):
        """
        Add an event to the model.
        """
        self.callman.register_handles({'event': [event_ref.ref]})
        event = self.dbstate.db.get_event_from_handle(event_ref.ref)
        event_date = get_date(event)
        event_sort = '%012d' % event.get_date_object().get_sort_value()
        place_name = place_displayer.display_event(self.dbstate.db, event)
        place_handle = event.get_place_handle()
        place_id = latitude = longitude = ""
        if place_handle:
            plc = self.dbstate.db.get_place_from_handle(place_handle)
            if plc:
                place_id = plc.get_gramps_id()
                latitude = plc.get_latitude()
                longitude = plc.get_longitude()
                latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8")

        description = event.get_description()
        if description == "":
            description = name

        self.model.add((event.get_handle(),
                        str(event.get_type()),
                        description,
                        event_date,
                        event_sort,
                        place_name,
                        place_id,
                        latitude,
                        longitude
                        ))
Exemple #11
0
 def column_death_place(self, data):
     event_ref = data.get_death_ref()
     if event_ref and event_ref.ref:
         event = self.db.get_event_from_handle(event_ref.ref)
         if event:
             return place_displayer.display_event(self.db, event)
     return ""
Exemple #12
0
    def add_event_ref(self, event_ref, spouse=None):
        """
        Add an event to the model.
        """
        self.callman.register_handles({'event': [event_ref.ref]})
        event = self.dbstate.db.get_event_from_handle(event_ref.ref)
        event_date = get_date(event)
        event_sort = '%012d' % event.get_date_object().get_sort_value()
        person_age      = self.column_age(event)
        person_age_sort = self.column_sort_age(event)
        place = place_displayer.display_event(self.dbstate.db, event)

        participants = get_participant_from_event(self.dbstate.db,
                                                  event_ref.ref)

        self.model.add((event.get_handle(),
                        str(event.get_type()),
                        event.get_description(),
                        event_date,
                        event_sort,
                        person_age,
                        person_age_sort,
                        place,
                        participants,
                        str(event_ref.get_role())))
Exemple #13
0
    def dump_child_event(self,text, name,event):
        date = ""
        place = ""
        if event:
            date = self._get_date(event.get_date_object())
            place_handle = event.get_place_handle()
            if place_handle:
                place = place_displayer.display_event(self.database, event)
                if place is None:
                    place = ''

        self.doc.start_row()
        self.doc.start_cell(text)
        self.doc.start_paragraph('FGR-Normal')
        self.doc.end_paragraph()
        self.doc.end_cell()
        self.doc.start_cell('FGR-TextContents')
        self.doc.start_paragraph('FGR-Normal')
        self.doc.write_text(name)
        self.doc.end_paragraph()
        self.doc.end_cell()
        self.doc.start_cell('FGR-TextContents')
        self.doc.start_paragraph('FGR-Normal')
        self.doc.write_text(date)
        self.doc.end_paragraph()
        self.doc.end_cell()
        self.doc.start_cell('FGR-TextContentsEnd')
        self.doc.start_paragraph('FGR-Normal')
        self.doc.write_text(place)
        self.doc.end_paragraph()
        self.doc.end_cell()
        self.doc.end_row()
Exemple #14
0
 def column_place(self,data):
     if data[COLUMN_PLACE]:
         event = Event()
         event.unserialize(data)
         return place_displayer.display_event(self.db, event)
     else:
         return ''
Exemple #15
0
    def format_event(self, event):
        if event:
            dobj = event.get_date_object()
            phandle = event.get_place_handle()
            if phandle:
                pname = place_displayer.display_event(self.dbstate.db, event)
            else:
                pname = None

            value = {
                'date' : displayer.display(dobj),
                'place' : pname,
                }
        else:
            pname = None
            dobj = None

        if dobj:
            if pname:
                return _('%(date)s in %(place)s') % value
            else:
                return '%(date)s' % value
        elif pname:
            return pname
        else:
            return ''
Exemple #16
0
def sort_places(dbase, handle_list, rlocale=glocale):
    """
    will sort the database places
    """
    pname_sub = defaultdict(list)

    for place_name in handle_list.keys():
        (hdle, pname, dummy_id, event) = handle_list[place_name]
        place = dbase.get_place_from_handle(hdle)
        pname = _pd.display(dbase, place)
        apname = _pd.display_event(dbase, event)

        pname_sub[pname].append(hdle)
        if pname != apname:
            pname_sub[apname].append(hdle)

    sorted_lists = []
    temp_list = sorted(pname_sub, key=rlocale.sort_key)

    for name in temp_list:
        if isinstance(name, bytes):
            name = name.decode('utf-8')
        sorted_lists.append((name, pname_sub[name][0]))

    return sorted_lists
Exemple #17
0
    def get_event_text(self, the_type, handle, data):
        """
        Come up with a short line of text that we can use as
        a summary to represent this event.
        """

        # get the event:
        event = self.tables[the_type]['get_func'](handle)

        # first check to see if the event has a descriptive name
        text = event.get_description()  # (this is rarely set for events)

        # if we don't have a description...
        if text == '':
            # ... then we merge together several fields

            # get the event type (marriage, birth, death, etc.)
            text = str(event.get_type())

            # see if there is a date
            date = _dd.display(event.get_date_object())
            if date != '':
                text += '; %s' % date

            # see if there is a place
            if event.get_place_handle():
                text += '; %s' % _pd.display_event(self.db, event)

        return text
Exemple #18
0
    def get_event_text(self, the_type, handle, data):
        """
        Come up with a short line of text that we can use as
        a summary to represent this event.
        """

        # get the event:
        event = self.tables[the_type]['get_func'](handle)

        # first check to see if the event has a descriptive name
        text = event.get_description()  # (this is rarely set for events)

        # if we don't have a description...
        if text == '':
            # ... then we merge together several fields

            # get the event type (marriage, birth, death, etc.)
            text = str(event.get_type())

            # see if there is a date
            date = _dd.display(event.get_date_object())
            if date != '':
                text += '; %s' % date

            # see if there is a place
            if event.get_place_handle():
                text += '; %s' % _pd.display_event(self.db, event)

        return text
Exemple #19
0
 def column_death_place(self, data):
     event_ref = data.get_death_ref()
     if event_ref and event_ref.ref:
         event = self.db.get_event_from_handle(event_ref.ref)
         if event:
             return place_displayer.display_event(self.db, event)
     return ""
Exemple #20
0
 def get_place(self, event):
     "return place for given event"
     place_handle = event.get_place_handle()
     if place_handle:
         place = _pd.display_event(self.db, event)
         if place:
             return [place]
     return [_T_("Place missing")]
Exemple #21
0
 def format_place():
     """ start formatting a place in this event """
     # TO_FIX: bug 9562
     #place_format = PlaceFormat(self, self.string_in)
     #place = place_format.get_place(self.database, event)
     #return place_format.parse_format(self.database, place)
     place = place_displayer.display_event(self.database, event)
     return place
 def get_place(self, event):
     "return place for given event"
     place_handle = event.get_place_handle()
     if place_handle:
         place = _pd.display_event(self.db, event)
         if place:
             return [place]
     return [_T_("Place missing")]
    def get_full_person_info(self, person):

        retval = ""
        b_date = "0"
        b_place = ""
        birth_ref = person.get_birth_ref()
        for event_ref in person.get_event_ref_list():
            role = int(event_ref.get_role())
            if role != EventRoleType.PRIMARY:
                next
            event = self.db.get_event_from_handle(event_ref.ref)
            etype = int(event.get_type())
            val = PERSONCONSTANTEVENTS.get(etype)

        if birth_ref:
            birth = self.db.get_event_from_handle(birth_ref.ref)
            if birth:
                b_date = self.format_date(birth.get_date_object())
                if not b_date:
                    b_date = "0"
                place_handle = birth.get_place_handle()
                if place_handle:
                    b_place = _pd.display_event(self.db, birth)

        if probably_alive(person, self.db):
            d_date = ""
        else:
            d_date = "0"
        d_place = ""
        death_ref = person.get_death_ref()
        if death_ref:
            death = self.db.get_event_from_handle(death_ref.ref)
            if death:
                d_date = self.format_date(death.get_date_object())
                place_handle = death.get_place_handle()
                if place_handle:
                    d_place = _pd.display_event(self.db, death)

        retval = retval + "%s " % b_date
        if b_place != "":
            retval = retval + "#bp %s " % self.rem_spaces(b_place)
        retval = retval + "%s " % d_date
        if d_place != "":
            retval = retval + "#dp %s " % self.rem_spaces(d_place)
        return retval
Exemple #24
0
    def dump_parent_event(self, name, event):
        place = ""
        date = ""
        descr = ""
        if event:
            date = self._get_date(event.get_date_object())
            place = _pd.display_event(self.db, event)
            if place is None:
                place = ''
            descr = event.get_description()

            if self.include_attrs:
                for attr in event.get_attribute_list():
                    if descr:
                        # translators: needed for Arabic, ignore otherwise
                        descr += self._("; ")
                    attr_type = self._get_type(attr.get_type())
                    # translators: needed for French, ignore otherwise
                    descr += self._("%(str1)s: %(str2)s") % {
                        'str1': self._(attr_type),
                        'str2': attr.get_value()
                    }

        self.doc.start_row()
        self.doc.start_cell("FGR-TextContents")
        self.doc.start_paragraph('FGR-Normal')
        self.doc.write_text(name)
        self.doc.end_paragraph()
        self.doc.end_cell()

        if descr:
            self.doc.start_cell("FGR-TextContentsEnd", 2)
            self.doc.start_paragraph('FGR-Normal')
            self.doc.write_text(descr)
            self.doc.end_paragraph()
            self.doc.end_cell()
            self.doc.end_row()

            if date or place:
                self.doc.start_row()
                self.doc.start_cell("FGR-TextContents")
                self.doc.start_paragraph('FGR-Normal')
                self.doc.end_paragraph()
                self.doc.end_cell()

        if (date or place) or not descr:
            self.doc.start_cell("FGR-TextContents")
            self.doc.start_paragraph('FGR-Normal')
            self.doc.write_text(date)
            self.doc.end_paragraph()
            self.doc.end_cell()
            self.doc.start_cell("FGR-TextContentsEnd")
            self.doc.start_paragraph('FGR-Normal')
            self.doc.write_text(place)
            self.doc.end_paragraph()
            self.doc.end_cell()
            self.doc.end_row()
Exemple #25
0
    def dump_parent_event(self, name,event):
        place = ""
        date = ""
        descr = ""
        if event:
            date = self._get_date(event.get_date_object())
            place = place_displayer.display_event(self.database, event)
            if place is None:
                place = ''
            descr = event.get_description()

            if self.includeAttrs:
                for attr in event.get_attribute_list():
                    if descr:
                        # translators: needed for Arabic, ignore otherwise
                        descr += self._("; ")
                    attr_type = self._get_type(attr.get_type())
                    # translators: needed for French, ignore otherwise
                    descr += self._("%(str1)s: %(str2)s") % {
                                          'str1' : self._(attr_type),
                                          'str2' : attr.get_value() }

        self.doc.start_row()
        self.doc.start_cell("FGR-TextContents")
        self.doc.start_paragraph('FGR-Normal')
        self.doc.write_text(name)
        self.doc.end_paragraph()
        self.doc.end_cell()

        if descr:
            self.doc.start_cell("FGR-TextContentsEnd",2)
            self.doc.start_paragraph('FGR-Normal')
            self.doc.write_text(descr)
            self.doc.end_paragraph()
            self.doc.end_cell()
            self.doc.end_row()

            if date or place:
                self.doc.start_row()
                self.doc.start_cell("FGR-TextContents")
                self.doc.start_paragraph('FGR-Normal')
                self.doc.end_paragraph()
                self.doc.end_cell()

        if (date or place) or not descr:
            self.doc.start_cell("FGR-TextContents")
            self.doc.start_paragraph('FGR-Normal')
            self.doc.write_text(date)
            self.doc.end_paragraph()
            self.doc.end_cell()
            self.doc.start_cell("FGR-TextContentsEnd")
            self.doc.start_paragraph('FGR-Normal')
            self.doc.write_text(place)
            self.doc.end_paragraph()
            self.doc.end_cell()
            self.doc.end_row()
Exemple #26
0
 def add_residence(self, event):
     """
     Add a residence event to the model.
     """
     date = get_date(event)
     place = ''
     handle = event.get_place_handle()
     if handle:
         place = place_displayer.display_event(self.dbstate.db, event)
     self.model.add((event.get_handle(), date, place))
Exemple #27
0
    def column_death_place(self, data):
        handle = data[0]
        cached, value = self.get_cached_value(handle, "DEATH_PLACE")
        if cached:
            return value
        else:
            index = data[COLUMN_DEATH]
            if index != -1:
                try:
                    local = data[COLUMN_EVENT][index]
                    dr = EventRef()
                    dr.unserialize(local)
                    event = self.db.get_event_from_handle(dr.ref)
                    if event:
                        place_title = place_displayer.display_event(
                            self.db, event)
                        if place_title:
                            value = escape(place_title)
                            self.set_cached_value(handle, "DEATH_PLACE", value)
                            return value
                except:
                    value = ''
                    self.set_cached_value(handle, "DEATH_PLACE", value)
                    return value

            for event_ref in data[COLUMN_EVENT]:
                er = EventRef()
                er.unserialize(event_ref)
                event = self.db.get_event_from_handle(er.ref)
                etype = event.get_type()
                if (etype in [
                        EventType.BURIAL, EventType.CREMATION,
                        EventType.CAUSE_DEATH
                ] and er.get_role() == EventRoleType.PRIMARY):

                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        value = "<i>%s</i>" % escape(place_title)
                        self.set_cached_value(handle, "DEATH_PLACE", value)
                        return value
            value = ""
            self.set_cached_value(handle, "DEATH_PLACE", value)
            return value
Exemple #28
0
 def add_residence(self, event):
     """
     Add a residence event to the model.
     """
     date = get_date(event)
     place = ''
     handle = event.get_place_handle()
     if handle:
         place = place_displayer.display_event(self.dbstate.db, event)
     self.model.add((event.get_handle(), date, place))
Exemple #29
0
    def column_death_place(self, data):
        handle = data[0]
        cached, value = self.get_cached_value(handle, "DEATH_PLACE")
        if cached:
            return value
        else:
            index = data[COLUMN_DEATH]
            if index != -1:
                try:
                    local = data[COLUMN_EVENT][index]
                    dr = EventRef()
                    dr.unserialize(local)
                    event = self.db.get_event_from_handle(dr.ref)
                    if event:
                        place_title = place_displayer.display_event(self.db, event)
                        if place_title:
                            value = escape(place_title)
                            self.set_cached_value(handle, "DEATH_PLACE", value)
                            return value
                except:
                    value = ""
                    self.set_cached_value(handle, "DEATH_PLACE", value)
                    return value

            for event_ref in data[COLUMN_EVENT]:
                er = EventRef()
                er.unserialize(event_ref)
                event = self.db.get_event_from_handle(er.ref)
                etype = event.get_type()
                if (
                    etype in [EventType.BURIAL, EventType.CREMATION, EventType.CAUSE_DEATH]
                    and er.get_role() == EventRoleType.PRIMARY
                ):

                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        value = "<i>%s</i>" % escape(place_title)
                        self.set_cached_value(handle, "DEATH_PLACE", value)
                        return value
            value = ""
            self.set_cached_value(handle, "DEATH_PLACE", value)
            return value
Exemple #30
0
 def column_place(self,data):
     if data[COLUMN_PLACE]:
         cached, value = self.get_cached_value(data[0], "PLACE")
         if not cached:
             event = Event()
             event.unserialize(data)
             value = place_displayer.display_event(self.db, event)
             self.set_cached_value(data[0], "PLACE", value)
         return value
     else:
         return ''
Exemple #31
0
 def column_place(self, data):
     if data[COLUMN_PLACE]:
         cached, value = self.get_cached_value(data[0], "PLACE")
         if not cached:
             event = Event()
             event.unserialize(data)
             value = place_displayer.display_event(self.db, event)
             self.set_cached_value(data[0], "PLACE", value)
         return value
     else:
         return ''
Exemple #32
0
 def format_event(self, event):
     """
     Format the event for display.
     """
     date = get_date(event)
     handle = event.get_place_handle()
     if handle:
         place = place_displayer.display_event(self.dbstate.db, event)
         retval = _("%(date)s - %(place)s.") % {"date": date, "place": place}
     else:
         retval = _("%(date)s.") % dict(date=date)
     return retval
Exemple #33
0
 def get_date_place(self, event):
     """
     Return the date and place of the given event.
     """
     event_date = ''
     event_place = ''
     event_sort = '%012d' % 0
     if event:
         event_date = get_date(event)
         event_sort = '%012d' % event.get_date_object().get_sort_value()
         event_place = place_displayer.display_event(self.dbstate.db, event)
     return (event_date, event_sort, event_place)
Exemple #34
0
 def get_date_place(self, event):
     """
     Return the date and place of the given event.
     """
     event_date = ''
     event_place = ''
     event_sort = '%012d' % 0
     if event:
         event_date = get_date(event)
         event_sort = '%012d' % event.get_date_object().get_sort_value()
         event_place = place_displayer.display_event(self.dbstate.db, event)
     return (event_date, event_sort, event_place)
Exemple #35
0
    def get_place_string(self, event):
        """
        return place string for an event label.

        Based on the data availability and preferences, we select one
        of the following for a given event:
            place name
            empty string
        """
        if event and self.event_choice in [2, 3, 5, 6, 7]:
            return place_displayer.display_event(self._db, event)
        return ''
Exemple #36
0
    def get_place_string(self, event):
        """
        return place string for an event label.

        Based on the data availability and preferences, we select one
        of the following for a given event:
            place name
            empty string
        """
        if event and self.event_choice in [2, 3, 5, 6, 7]:
            return _pd.display_event(self._db, event)
        return ''
Exemple #37
0
    def column_birth_place(self, data):
        handle = data[0]
        cached, value = self.get_cached_value(handle, "BIRTH_PLACE")
        if cached:
            return value
        else:
            index = data[COLUMN_BIRTH]
            if index != -1:
                try:
                    local = data[COLUMN_EVENT][index]
                    br = EventRef()
                    br.unserialize(local)
                    event = self.db.get_event_from_handle(br.ref)
                    if event:
                        place_title = place_displayer.display_event(
                            self.db, event)
                        if place_title:
                            value = escape(place_title)
                            self.set_cached_value(handle, "BIRTH_PLACE", value)
                            return value
                except:
                    value = ''
                    self.set_cached_value(handle, "BIRTH_PLACE", value)
                    return value

            for event_ref in data[COLUMN_EVENT]:
                er = EventRef()
                er.unserialize(event_ref)
                event = self.db.get_event_from_handle(er.ref)
                etype = event.get_type()
                if (etype.is_birth_fallback()
                        and er.get_role() == EventRoleType.PRIMARY):
                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        value = "<i>%s</i>" % escape(place_title)
                        self.set_cached_value(handle, "BIRTH_PLACE", value)
                        return value
            value = ""
            self.set_cached_value(handle, "BIRTH_PLACE", value)
            return value
Exemple #38
0
    def write_person(self, person_handle):
        person = self.db.get_person_from_handle(person_handle)
        if person:
            birth_ref = person.get_birth_ref()
            if birth_ref:
                birth = self.db.get_event_from_handle(birth_ref.ref)
                if birth:
                    b_date = birth.get_date_object()
                    place_handle = birth.get_place_handle()
                    if place_handle:
                        # feature requests 2356, 1657: avoid genitive form
                        place_title = _pd.display_event(self.db, birth)
                        self.write_vevent(
                            _("Birth of %s") %
                            person.get_primary_name().get_name(), b_date,
                            place_title)
                    else:
                        # feature requests 2356, 1657: avoid genitive form
                        self.write_vevent(
                            _("Birth of %s") %
                            person.get_primary_name().get_name(), b_date)

            death_ref = person.get_death_ref()
            if death_ref:
                death = self.db.get_event_from_handle(death_ref.ref)
                if death:
                    d_date = death.get_date_object()
                    place_handle = death.get_place_handle()
                    if place_handle:
                        # feature requests 2356, 1657: avoid genitive form
                        place_title = _pd.display_event(self.db, death)
                        self.write_vevent(
                            _("Death of %s") %
                            person.get_primary_name().get_name(), d_date,
                            place_title)
                    else:
                        # feature requests 2356, 1657: avoid genitive form
                        self.write_vevent(
                            _("Death of %s") %
                            person.get_primary_name().get_name(), d_date)
Exemple #39
0
    def write_person(self, person_handle):
        person = self.db.get_person_from_handle(person_handle)
        if person:
            birth_ref = person.get_birth_ref()
            if birth_ref:
                birth = self.db.get_event_from_handle(birth_ref.ref)
                if birth:
                    b_date = birth.get_date_object()
                    place_handle = birth.get_place_handle()
                    if place_handle:
                        # feature requests 2356, 1657: avoid genitive form
                        place_title = _pd.display_event(self.db, birth)
                        self.write_vevent(_("Birth of %s") %
                            person.get_primary_name().get_name(),
                            b_date, place_title)
                    else:
                        # feature requests 2356, 1657: avoid genitive form
                        self.write_vevent(_("Birth of %s") %
                            person.get_primary_name().get_name(),
                            b_date)

            death_ref = person.get_death_ref()
            if death_ref:
                death = self.db.get_event_from_handle(death_ref.ref)
                if death:
                    d_date = death.get_date_object()
                    place_handle = death.get_place_handle()
                    if place_handle:
                        # feature requests 2356, 1657: avoid genitive form
                        place_title = _pd.display_event(self.db, death)
                        self.write_vevent(_("Death of %s") %
                            person.get_primary_name().get_name(),
                            d_date,
                            place_title)
                    else:
                        # feature requests 2356, 1657: avoid genitive form
                        self.write_vevent(_("Death of %s") %
                            person.get_primary_name().get_name(),
                            d_date)
Exemple #40
0
 def format_event(self, event):
     """
     Format the event for display.
     """
     date = get_date(event)
     handle = event.get_place_handle()
     if handle:
         place = place_displayer.display_event(self.dbstate.db, event)
         retval = _('%(date)s - %(place)s.') % {'date' : date,
                                                'place' : place}
     else:
         retval = _('%(date)s.') % dict(date = date)
     return retval
Exemple #41
0
    def get_full_person_info(self, person):
        # FIXME:
        #if self.restrict:
        #    return "0 "
            
        retval = ""

        b_date = "0"
        b_place = ""
        birth_ref = person.get_birth_ref()
        if birth_ref:
            birth = self.db.get_event_from_handle(birth_ref.ref)
            if birth:
                b_date = self.format_date( birth.get_date_object())
                place_handle = birth.get_place_handle()
                if place_handle:
                    b_place = _pd.display_event(self.db, birth)
        
        if probably_alive(person,self.db):
            d_date = ""
        else:
            d_date = "0"
        d_place = ""
        death_ref = person.get_death_ref()
        if death_ref:
            death = self.db.get_event_from_handle(death_ref.ref)
            if death:
                d_date = self.format_date( death.get_date_object())
                place_handle = death.get_place_handle()
                if place_handle:
                    d_place = _pd.display_event(self.db, death)
            
        retval = retval + "%s " % b_date
        if b_place != "":
            retval = retval + "#bp %s " % self.rem_spaces(b_place)
        retval = retval + "%s " % d_date
        if d_place != "":
            retval = retval + "#dp %s " % self.rem_spaces(d_place)
        return retval
Exemple #42
0
    def __init__(self, lds_list, db):
        Gtk.ListStore.__init__(self, str, str, str, str, str, bool, object)

        for lds_ord in lds_list:
            self.append(row=[
                lds_ord.type2str(),
                get_date(lds_ord),
                lds_ord.status2str(),
                TEMPLES.name(lds_ord.get_temple()),
                place_displayer.display_event(db, lds_ord),
                lds_ord.get_privacy(),
                lds_ord,
                ])
Exemple #43
0
 def add_event_ref(self, event_ref):
     db = self.dbstate.db
     event = db.get_event_from_handle(event_ref.ref)
     if event:
         role_text = str(event_ref.role)
         place_text = place_displayer.display_event(db, event)
         citation = get_form_citation(db, event)
         if citation:
             source_handle = citation.get_reference_handle()
             source = db.get_source_from_handle(source_handle)
             source_text = source.get_title()
             self.model.append((citation, source_text, role_text,
                                get_date(event), place_text))
Exemple #44
0
    def get_full_person_info(self, person):
        # FIXME:
        #if self.restrict:
        #    return "0 "

        retval = ""

        b_date = "0"
        b_place = ""
        birth_ref = person.get_birth_ref()
        if birth_ref:
            birth = self.db.get_event_from_handle(birth_ref.ref)
            if birth:
                b_date = self.format_date(birth.get_date_object())
                place_handle = birth.get_place_handle()
                if place_handle:
                    b_place = _pd.display_event(self.db, birth)

        if probably_alive(person, self.db):
            d_date = ""
        else:
            d_date = "0"
        d_place = ""
        death_ref = person.get_death_ref()
        if death_ref:
            death = self.db.get_event_from_handle(death_ref.ref)
            if death:
                d_date = self.format_date(death.get_date_object())
                place_handle = death.get_place_handle()
                if place_handle:
                    d_place = _pd.display_event(self.db, death)

        retval = retval + "%s " % b_date
        if b_place != "":
            retval = retval + "#bp %s " % self.rem_spaces(b_place)
        retval = retval + "%s " % d_date
        if d_place != "":
            retval = retval + "#dp %s " % self.rem_spaces(d_place)
        return retval
Exemple #45
0
    def __init__(self, lds_list, db):
        Gtk.ListStore.__init__(self, str, str, str, str, str, bool, object)

        for lds_ord in lds_list:
            self.append(row=[
                lds_ord.type2str(),
                get_date(lds_ord),
                lds_ord.status2str(),
                TEMPLES.name(lds_ord.get_temple()),
                place_displayer.display_event(db, lds_ord),
                lds_ord.get_privacy(),
                lds_ord,
            ])
Exemple #46
0
    def column_birth_place(self, data):
        handle = data[0]
        cached, value = self.get_cached_value(handle, "BIRTH_PLACE")
        if cached:
            return value
        else:
            index = data[COLUMN_BIRTH]
            if index != -1:
                try:
                    local = data[COLUMN_EVENT][index]
                    br = EventRef()
                    br.unserialize(local)
                    event = self.db.get_event_from_handle(br.ref)
                    if event:
                        place_title = place_displayer.display_event(self.db, event)
                        if place_title:
                            value = escape(place_title)
                            self.set_cached_value(handle, "BIRTH_PLACE", value)
                            return value
                except:
                    value = ""
                    self.set_cached_value(handle, "BIRTH_PLACE", value)
                    return value

            for event_ref in data[COLUMN_EVENT]:
                er = EventRef()
                er.unserialize(event_ref)
                event = self.db.get_event_from_handle(er.ref)
                etype = event.get_type()
                if etype in [EventType.BAPTISM, EventType.CHRISTEN] and er.get_role() == EventRoleType.PRIMARY:
                    place_title = place_displayer.display_event(self.db, event)
                    if place_title:
                        value = "<i>%s</i>" % escape(place_title)
                        self.set_cached_value(handle, "BIRTH_PLACE", value)
                        return value
            value = ""
            self.set_cached_value(handle, "BIRTH_PLACE", value)
            return value
Exemple #47
0
 def get_event_info(self, handle):
     """Return date and place of an event as string."""
     date = ""
     place = ""
     if handle:
         event = self.database.get_event_from_handle(handle)
         date = get_date(event)
         place = place_displayer.display_event(self.database, event)
         if date:
             return ("%s, %s" % (date, place)) if place else date
         else:
             return place or ""
     else:
         return ""
 def get_places(self, data):
     "return places for given (person,event_handles)"
     places = []
     person, event_handles = data
     for event_handle in event_handles:
         event = self.db.get_event_from_handle(event_handle)
         place_handle = event.get_place_handle()
         if place_handle:
             place = _pd.display_event(self.db, event)
             if place:
                 places.append(place)
         else:
             places.append(_T_("Place missing"))
     return places
Exemple #49
0
 def format_place(self, event):
     """
     If places are included in the export return a link, else return a
     formatted place for the given event.
     """
     if self.include_places:
         place_handle = event.get_place_handle()
         if place_handle:
             place = self.db.get_place_from_handle(place_handle)
             if place:
                 return "[%s]" % place.get_gramps_id()
         return ""
     else:
         return _pd.display_event(self.db, event)
Exemple #50
0
 def get_places(self, data):
     "return places for given (person,event_handles)"
     places = []
     person, event_handles = data
     for event_handle in event_handles:
         event = self.db.get_event_from_handle(event_handle)
         place_handle = event.get_place_handle()
         if place_handle:
             place = _pd.display_event(self.db, event)
             if place:
                 places.append(place)
         else:
             places.append(_T_("Place missing"))
     return places
Exemple #51
0
 def get_event_info(self, handle):
     """Return date and place of an event as string."""
     date = ""
     place = ""
     if handle:
         event = self.database.get_event_from_handle(handle)
         date = get_date(event)
         place = place_displayer.display_event(self.database, event)
         if date:
             return ("%s, %s" % (date, place)) if place else date
         else:
             return place or ""
     else:
         return ""
Exemple #52
0
 def write_family(self, family_handle):
     family = self.db.get_family_from_handle(family_handle)
     if family:
         for event_ref in family.get_event_ref_list():
             event = self.db.get_event_from_handle(event_ref.ref)
             if event.get_type() == EventType.MARRIAGE:
                 m_date = event.get_date_object()
                 place_handle = event.get_place_handle()
                 # feature requests 2356, 1657: avoid genitive form
                 text = _("Marriage of %s") % family_name(family, self.db)
                 if place_handle:
                     place_title = _pd.display_event(self.db, event)
                     self.write_vevent( text, m_date, place_title)
                 else:
                     self.write_vevent( text, m_date)
Exemple #53
0
    def write_LDS_ordinances(self):
        """ write any LDS ordinances of the person """

        ord_list = self.person.get_lds_ord_list()

        if len(ord_list) == 0:
            return

        self.doc.start_table("ordinances", "IDS-IndTable")
        self.doc.start_row()
        self.doc.start_cell("IDS-TableHead", 2)
        self.write_paragraph(self._('LDS Ordinance'), style='IDS-TableTitle')
        self.doc.end_cell()
        self.doc.end_row()
        self.doc.end_table()

        self.doc.start_table("ordinances3", "IDS-OrdinanceTable")
        self.doc.start_row()
        self.write_cell(self._('Type'), style='IDS-Section')
        self.write_cell(self._('Date'), style='IDS-Section')
        self.write_cell(self._('Status'), style='IDS-Section')
        self.write_cell(self._('Temple'), style='IDS-Section')
        self.write_cell(self._('Place'), style='IDS-Section')
        self.doc.end_row()

        for lds_ord in ord_list:
            otype = self._(lds_ord.type2str())
            date = self._get_date(lds_ord.get_date_object())
            status = self._(lds_ord.status2str())
            temple = TEMPLES.name(lds_ord.get_temple())
            place_name = ''
            place_endnote = ''
            place_handle = lds_ord.get_place_handle()
            if place_handle:
                place = self._db.get_place_from_handle(place_handle)
                place_name = _pd.display_event(self._db, lds_ord)
                place_endnote = self._cite_endnote(place)
            endnotes = self._cite_endnote(lds_ord, prior=place_endnote)
            self.doc.start_row()
            self.write_cell(otype, endnotes)
            self.write_cell(date)
            self.write_cell(status)
            self.write_cell(temple)
            self.write_cell(place_name)
            self.doc.end_row()
        self.doc.end_table()
        self.doc.start_paragraph('IDS-Normal')
        self.doc.end_paragraph()
 def __date_place(self, event):
     if event:
         date = get_date(event)
         place_title = place_displayer.display_event(self.database, event)
         if place_title:
             return("%(event_abbrev)s %(date)s - %(place)s" % {
                 'event_abbrev': event.type.get_abbreviation(),
                 'date' : date,
                 'place' : place_title,
                 })
         else:
             return("%(event_abbrev)s %(date)s" % {
                 'event_abbrev': event.type.get_abbreviation(),
                 'date' : date
                 })
     return ""
Exemple #55
0
 def __date_place(self, event):
     """ return the date and/or place an event happened """
     if event:
         date = self._get_date(event.get_date_object())
         place_handle = event.get_place_handle()
         if place_handle:
             place = _pd.display_event(self.database, event)
             return("%(event_abbrev)s %(date)s - %(place)s" % {
                 'event_abbrev': event.type.get_abbreviation(self._),
                 'date' : date,
                 'place' : place,
                 })
         else:
             return("%(event_abbrev)s %(date)s" % {
                 'event_abbrev': event.type.get_abbreviation(self._),
                 'date' : date
                 })
     return ""
Exemple #56
0
def _Event_get_place_text(event, database, placeholder=False):
    """
    Return a textual representation of the event's place to be used in textual
    context. This is basically "in " + the place title.

    @param placeholder: whether a series of underscores should be inserted as a
        placeholder if the place is missing.
    """

    place_handle = event.get_place_handle()

    if place_handle:
        place_title = place_displayer.display_event(database, event)
        text = _("in %(place)s") % {'place': place_title}
    elif placeholder and event.get_type() in _Event_needs_date_place:
        text = _("in %(place)s") % {'place': "__________"}
    else:
        text = ""

    return text
Exemple #57
0
    def get_wedding_data(self,family):
        ret = "";
        event_ref_list = family.get_event_ref_list()
        m_date = ""
        m_place = ""
        m_source = ""
        married = 0
        eng_date = ""
        eng_place = ""
        eng_source = ""
        engaged = 0
        div_date = ""
        divorced = 0
        for event_ref in event_ref_list:
            event = self.db.get_event_from_handle(event_ref.ref)
            if event.get_type() == EventType.MARRIAGE:
                married = 1
                m_date = self.format_date( event.get_date_object())
                place_handle = event.get_place_handle()
                if place_handle:
                    m_place = _pd.display_event(self.db, event)
                m_source = self.get_primary_source( event.get_citation_list())
            if event.get_type() == EventType.ENGAGEMENT:
                engaged = 1
                eng_date = self.format_date( event.get_date_object())
                place_handle = event.get_place_handle()
                if place_handle:
                    eng_place = _pd.display_event(self.db, event)
                eng_source = self.get_primary_source( event.get_citation_list())
            if event.get_type() == EventType.DIVORCE:
                divorced = 1
                div_date = self.format_date( event.get_date_object())
        if married == 1:
            if m_date != "":
                ret = ret + m_date
            if m_place != "" and m_source != "":
                ret = ret + " #mp %s #ms %s" % (self.rem_spaces( m_place), self.rem_spaces( m_source))
            if m_place != "" and m_source == "":
                ret = ret + " #mp %s" % self.rem_spaces( m_place)
            if m_source != "" and m_place == "":
                ret = ret + " #ms %s" % self.rem_spaces( m_source)
        elif engaged == 1:
            """Geneweb only supports either Marriage or engagement"""
            if eng_date != "":
                ret = ret + eng_date
            if m_place != "" and m_source != "":
                ret = ret + " #mp %s #ms %s" % (self.rem_spaces( m_place), self.rem_spaces( m_source))
            if eng_place != "" and m_source == "":
                ret = ret + " #mp %s" % self.rem_spaces( m_place)
            if eng_source != "" and m_place == "":
                ret = ret + " #ms %s" % self.rem_spaces( m_source)
        else:
            if family.get_relationship() != FamilyRelType.MARRIED:
                """Not married or engaged"""
                ret = ret + " #nm"

        if divorced == 1:
            if div_date != "":
                ret = ret + " -%s" %div_date
            else:
                ret = ret + " -0"

        return ret
Exemple #58
0
    def write_families(self):

        family_handle_list = self.person.get_family_handle_list()
        if not len(family_handle_list):
            return

        self.doc.start_table("three","IDS-IndTable")
        self.doc.start_row()
        self.doc.start_cell("IDS-TableHead", 2)
        self.write_paragraph(self._('Marriages/Children'),
                             style='IDS-TableTitle')
        self.doc.end_cell()
        self.doc.end_row()
        self.doc.end_table()

        for family_handle in family_handle_list:
            self.doc.start_table("three","IDS-IndTable")
            family = self._db.get_family_from_handle(family_handle)
            self.family_notes_list += family.get_note_list()
            if self.person.get_handle() == family.get_father_handle():
                spouse_id = family.get_mother_handle()
            else:
                spouse_id = family.get_father_handle()
            self.doc.start_row()
            self.doc.start_cell("IDS-NormalCell", 2)
            if spouse_id:
                spouse = self._db.get_person_from_handle(spouse_id)
                text = self.get_name(spouse)
                mark = ReportUtils.get_person_mark(self._db, spouse)
            else:
                spouse = None
                text = self._("unknown")
                mark = None
            endnotes = self._cite_endnote(family)
            self.write_paragraph(text, endnotes=endnotes, mark=mark,
                                 style='IDS-Spouse')
            self.doc.end_cell()
            self.doc.end_row()

            event_ref_list = family.get_event_ref_list()
            for event_ref, event in self.get_event_list(event_ref_list):
                self.write_fact(event_ref, event)

            child_ref_list = family.get_child_ref_list()
            if len(child_ref_list):
                self.doc.start_row()
                self.write_cell(self._("Children"))
                self.doc.start_cell("IDS-ListCell")
                for child_ref in child_ref_list:
                    child = self._db.get_person_from_handle(child_ref.ref)
                    name = self.get_name(child)
                    mark = ReportUtils.get_person_mark(self._db, child)
                    endnotes = self._cite_endnote(child_ref)
                    self.write_paragraph(name, endnotes=endnotes, mark=mark)
                self.doc.end_cell()
                self.doc.end_row()

            attr_list = family.get_attribute_list()
            if len(attr_list):
                self.doc.start_row()
                self.write_cell(self._("Attributes"))
                self.doc.start_cell("IDS-ListCell")
                self.do_attributes(attr_list)
                self.doc.end_cell()
                self.doc.end_row()

            self.doc.end_table()

            ord_list = family.get_lds_ord_list()
            if len(ord_list):
                self.doc.start_table("ordinances2","IDS-OrdinanceTable2")
                self.doc.start_row()
                self.write_cell(self._('LDS Ordinance'))
                self.write_cell(self._('Type'), style='IDS-Section')
                self.write_cell(self._('Date'), style='IDS-Section')
                self.write_cell(self._('Status'), style='IDS-Section')
                self.write_cell(self._('Temple'), style='IDS-Section')
                self.write_cell(self._('Place'), style='IDS-Section')
                self.doc.end_row()

                for lds_ord in ord_list:
                    type = self._(lds_ord.type2str())
                    date = self._get_date(lds_ord.get_date_object())
                    status = self._(lds_ord.status2str())
                    temple = TEMPLES.name(lds_ord.get_temple())
                    place_name = ''
                    place_endnote = ''
                    place_handle = lds_ord.get_place_handle()
                    if place_handle:
                        place = self._db.get_place_from_handle(place_handle)
                        place_name = place_displayer.display_event(self._db, lds_ord)
                        place_endnote = self._cite_endnote(place)
                    endnotes = self._cite_endnote(lds_ord, prior=place_endnote)
                    self.doc.start_row()
                    self.write_cell('')
                    self.write_cell(type, endnotes)
                    self.write_cell(date)
                    self.write_cell(status)
                    self.write_cell(temple)
                    self.write_cell(place_name)
                    self.doc.end_row()
                self.doc.end_table()

        self.doc.start_paragraph('IDS-Normal')
        self.doc.end_paragraph()
    def write_event(self, event_ref):
        text = ""
        event = self.db.get_event_from_handle(event_ref.ref)

        if self.fulldate:
            date = self._get_date(event.get_date_object())
        else:
            date = event.get_date_object().get_year()

        place = place_displayer.display_event(self.db, event)

        self.doc.start_paragraph('DDR-MoreDetails')
        event_name = self._get_type(event.get_type())
        if date and place:
            text +=  self._('%(date)s, %(place)s') % {
                       'date' : date, 'place' : place }
        elif date:
            text += self._('%(date)s') % {'date' : date}
        elif place:
            text += self._('%(place)s') % { 'place' : place }

        if event.get_description():
            if text:
                text += ". "
            text += event.get_description()

        text += self.endnotes(event)

        if text:
            text += ". "

        text = self._('%(event_name)s: %(event_text)s') % {
                             'event_name' : self._(event_name),
                             'event_text' : text }

        self.doc.write_text_citation(text)

        if self.inc_attrs:
            text = ""
            attr_list = event.get_attribute_list()
            attr_list.extend(event_ref.get_attribute_list())
            for attr in attr_list:
                if text:
                    # translators: needed for Arabic, ignore otherwise
                    text += self._("; ")
                attrName = self._get_type(attr.get_type())
                text += self._("%(type)s: %(value)s%(endnotes)s") % {
                                    'type'     : self._(attrName),
                                    'value'    : attr.get_value(),
                                    'endnotes' : self.endnotes(attr) }
            text = " " + text
            self.doc.write_text_citation(text)

        self.doc.end_paragraph()

        if self.inc_notes:
            # if the event or event reference has a note attached to it,
            # get the text and format it correctly
            notelist = event.get_note_list()
            notelist.extend(event_ref.get_note_list())
            for notehandle in notelist:
                note = self.db.get_note_from_handle(notehandle)
                self.doc.write_styled_note(note.get_styledtext(),
                        note.get_format(),"DDR-MoreDetails",
                        contains_html= note.get_type() == NoteType.HTML_CODE)