コード例 #1
0
ファイル: TimelineView.py プロジェクト: leonardcj/Time-Line
 def given_event_with(self, start="4 Aug 2010", end="10 Aug 2010",
                      text="Text", description=None,
                      pos=(0, 0), size=(0, 0)):
     event = Event(self.db.get_time_type(), human_time_to_py(start), human_time_to_py(end), text)
     if description is not None:
         event.set_data("description", description)
     self.db.save_event(event)
     self.mock_drawer.events_and_rects.append((event, wx.Rect(pos[0], pos[1], size[0], size[1])))
     return event
コード例 #2
0
ファイル: __init__.py プロジェクト: sk/gnumed
def copy_db(from_db, to_db):
    """
    Copy all content from one db to another.

    to_db is assumed to have no categories (conflicting category names are not
    handled).
    """
    if isinstance(to_db, MemoryDB):
        to_db.disable_save()
    # Copy categories (parent attribute fixed later)
    cat_map = {}
    for cat in from_db.get_categories():
        # name, color, and visible all immutable so safe to copy
        new_cat = Category(cat.name, cat.color, None, cat.visible)
        cat_map[cat.name] = new_cat
        to_db.save_category(new_cat)
    # Fix parent attribute
    for cat in from_db.get_categories():
        if cat.parent is not None:
            cat_map[cat.name].parent = cat_map[cat.parent.name]
    # Copy events
    for event in from_db.get_all_events():
        cat = None
        if event.category is not None:
            cat = cat_map[event.category.name]
        # start_time, end_time, and text all immutable so safe to copy
        new_event = Event(to_db.get_time_type(), event.time_period.start_time,
                          event.time_period.end_time,
                          event.text,
                          cat)
        # description immutable so safe to copy
        if event.get_data("description") is not None:
            new_event.set_data("description", event.get_data("description"))
        # icon immutable in practice (since never modified) so safe to copy
        if event.get_data("icon") is not None:
            new_event.set_data("icon", event.get_data("icon"))
        to_db.save_event(new_event)
    # Copy view properties (ViewProperties is specific to db so we need to copy
    # like this instead of just using load/save_view_properties in db).
    from_vp = ViewProperties()
    from_db.load_view_properties(from_vp)
    to_vp = ViewProperties()
    for from_cat in from_db.get_categories():
        cat = cat_map[from_cat.name]
        visible = from_vp.is_category_visible(from_cat)
        to_vp.set_category_visible(cat, visible)
    if from_vp.displayed_period is not None:
        # start_time and end_time immutable so safe to copy
        start = from_vp.displayed_period.start_time
        end = from_vp.displayed_period.end_time
        to_vp.displayed_period = TimePeriod(to_db.get_time_type(), start, end)
    to_db.save_view_properties(to_vp)
    # Save
    if isinstance(to_db, MemoryDB):
        to_db.enable_save()
コード例 #3
0
ファイル: __init__.py プロジェクト: jeromecc/gnumed
def copy_db(from_db, to_db):
    """
    Copy all content from one db to another.

    to_db is assumed to have no categories (conflicting category names are not
    handled).
    """
    if isinstance(to_db, MemoryDB):
        to_db.disable_save()
    # Copy categories (parent attribute fixed later)
    cat_map = {}
    for cat in from_db.get_categories():
        # name, color, and visible all immutable so safe to copy
        new_cat = Category(cat.name, cat.color, None, cat.visible)
        cat_map[cat.name] = new_cat
        to_db.save_category(new_cat)
    # Fix parent attribute
    for cat in from_db.get_categories():
        if cat.parent is not None:
            cat_map[cat.name].parent = cat_map[cat.parent.name]
    # Copy events
    for event in from_db.get_all_events():
        cat = None
        if event.category is not None:
            cat = cat_map[event.category.name]
        # start_time, end_time, and text all immutable so safe to copy
        new_event = Event(to_db.get_time_type(), event.time_period.start_time,
                          event.time_period.end_time, event.text, cat)
        # description immutable so safe to copy
        if event.get_data("description") is not None:
            new_event.set_data("description", event.get_data("description"))
        # icon immutable in practice (since never modified) so safe to copy
        if event.get_data("icon") is not None:
            new_event.set_data("icon", event.get_data("icon"))
        to_db.save_event(new_event)
    # Copy view properties (ViewProperties is specific to db so we need to copy
    # like this instead of just using load/save_view_properties in db).
    from_vp = ViewProperties()
    from_db.load_view_properties(from_vp)
    to_vp = ViewProperties()
    for from_cat in from_db.get_categories():
        cat = cat_map[from_cat.name]
        visible = from_vp.is_category_visible(from_cat)
        to_vp.set_category_visible(cat, visible)
    if from_vp.displayed_period is not None:
        # start_time and end_time immutable so safe to copy
        start = from_vp.displayed_period.start_time
        end = from_vp.displayed_period.end_time
        to_vp.displayed_period = TimePeriod(to_db.get_time_type(), start, end)
    to_db.save_view_properties(to_vp)
    # Save
    if isinstance(to_db, MemoryDB):
        to_db.enable_save()
コード例 #4
0
 def given_event_with(self,
                      start="4 Aug 2010",
                      end="10 Aug 2010",
                      text="Text",
                      description=None,
                      pos=(0, 0),
                      size=(0, 0)):
     event = Event(self.db.get_time_type(), human_time_to_py(start),
                   human_time_to_py(end), text)
     if description is not None:
         event.set_data("description", description)
     self.db.save_event(event)
     self.mock_drawer.events_and_rects.append(
         (event, wx.Rect(pos[0], pos[1], size[0], size[1])))
     return event
コード例 #5
0
ファイル: ics.py プロジェクト: sk/gnumed
 def _get_events(self, decider_fn=None):
     self.events = []
     for cal in self.cals:
         for event in cal.walk("VEVENT"):
             start, end = extract_start_end(event)
             txt = ""
             if event.has_key("summary"):
                 txt = event["summary"]
             elif event.has_key("description"):
                 txt = event["description"]
             else:
                 txt == "Unknown"
             e = Event(self.get_time_type(), start, end, txt)
             e.set_id(event["timeline_id"])
             if event.has_key("description"):
                 e.set_data("description", event["description"])
             if decider_fn is None or decider_fn(e):
                 self.events.append(e)
     return self.events
コード例 #6
0
ファイル: ics.py プロジェクト: jeromecc/gnumed
 def _get_events(self, decider_fn=None):
     self.events = []
     for cal in self.cals:
         for event in cal.walk("VEVENT"):
             start, end = extract_start_end(event)
             txt = ""
             if event.has_key("summary"):
                 txt = event["summary"]
             elif event.has_key("description"):
                 txt = event["description"]
             else:
                 txt == "Unknown"
             e = Event(self.get_time_type(), start, end, txt)
             e.set_id(event["timeline_id"])
             if event.has_key("description"):
                 e.set_data("description", event["description"])
             if decider_fn is None or decider_fn(e):
                 self.events.append(e)
     return self.events
コード例 #7
0
 def _create_db(self):
     db = XmlTimeline(self.tmp_path)
     # Create categories
     cat1 = Category("Category 1", (255, 0, 0), (0, 0, 255), True)
     db.save_category(cat1)
     cat2 = Category("Category 2", (0, 255, 0), None, True, parent=cat1)
     db.save_category(cat2)
     cat3 = Category("Category 3", (0, 0, 255), None, True, parent=cat2)
     db.save_category(cat3)
     # Create events
     ev1 = Event(db.get_time_type(), datetime(2010, 3, 3),
                 datetime(2010, 3, 6), "Event 1", cat1)
     ev1.set_data("description", u"The <b>first</b> event åäö.")
     ev1.set_data("alert", (datetime(2012, 12, 31), "Time to go"))
     db.save_event(ev1)
     # Create view properties
     vp = ViewProperties()
     start = datetime(2010, 3, 1)
     end = datetime(2010, 4, 1)
     vp.displayed_period = TimePeriod(db.get_time_type(), start, end)
     vp.set_category_visible(cat3, False)
     db.save_view_properties(vp)
コード例 #8
0
ファイル: XmlTimeline.py プロジェクト: leonardcj/Time-Line
 def _create_db(self):
     db = XmlTimeline(self.tmp_path)
     # Create categories
     cat1 = Category("Category 1", (255, 0, 0), (0, 0, 255), True)
     db.save_category(cat1)
     cat2 = Category("Category 2", (0, 255, 0), None, True, parent=cat1)
     db.save_category(cat2)
     cat3 = Category("Category 3", (0, 0, 255), None, True, parent=cat2)
     db.save_category(cat3)
     # Create events
     ev1 = Event(db.get_time_type(), datetime(2010, 3, 3), datetime(2010, 3, 6),
                 "Event 1", cat1)
     ev1.set_data("description", u"The <b>first</b> event åäö.")
     ev1.set_data("alert", (datetime(2012, 12, 31), "Time to go"))
     db.save_event(ev1)
     # Create view properties
     vp = ViewProperties()
     start = datetime(2010, 3, 1)
     end = datetime(2010, 4, 1)
     vp.displayed_period = TimePeriod(db.get_time_type(), start, end)
     vp.set_category_visible(cat3, False)
     db.save_view_properties(vp)
コード例 #9
0
ファイル: tutorial.py プロジェクト: jeromecc/gnumed
 def add_event(self, text, description, start_add, end_add=None):
     start, end = self.calc_start_end(start_add, end_add)
     evt = Event(self.db.get_time_type(), start, end, text, self.last_cat)
     if description:
         evt.set_data("description", description)
     self.db.save_event(evt)