47
49
return adatetime.weekday()
49
51
class DayWidget(Gtk.VBox):
50
def __init__(self,adate=None):
53
'edited' : (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE,())
56
def __init__(self,googlecalendar=None,adate=None, callback = None):
51
57
Gtk.VBox.__init__(self)
52
58
self.set_size_request(150, 100)
53
59
scrolledwindow = Gtk.ScrolledWindow()
56
62
self.pack_start(scrolledwindow,True,True,0)
57
63
self.store = Gtk.ListStore(str, object,str)
58
64
self.treeview = Gtk.TreeView(self.store)
65
#self.treeview.connect('cursor-changed',self.on_cursor_changed)
66
self.treeview.connect('button-release-event',self.on_cursor_changed)
59
67
self.column = Gtk.TreeViewColumn('', Gtk.CellRendererText(), text=0, background=2)
60
68
self.treeview.append_column(self.column)
61
69
scrolledwindow.add(self.treeview)
62
70
if adate is not None:
72
self.googlecalendar = googlecalendar
73
self.calendars = googlecalendar.calendars.values()
74
self.callback = callback
76
def on_cursor_changed(self,widget,key):
77
if self.calendars is not None:
78
selection = widget.get_selection()
79
if selection is not None:
80
amodel,aiter = selection.get_selected()
81
aevent = amodel.get_value(aiter,1)
82
ew = EventWindow(self.calendars,aevent)
83
if ew.run() == Gtk.ResponseType.ACCEPT:
84
if ew.get_operation() == 'DELETE':
86
md = Gtk.MessageDialog( parent = None,
87
flags = Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
88
type = Gtk.MessageType.ERROR,
89
buttons = Gtk.ButtonsType.OK_CANCEL,
90
message_format = _('Are you sure you want to revove this event?'))
91
if md.run() == Gtk.ResponseType.OK:
93
if self.googlecalendar.remove_event(aevent['calendar_id'],aevent['id']):
94
self.googlecalendar.calendars[aevent['calendar_id']]['events'].pop(aevent['id'],True)
98
elif ew.get_operation() == 'EDIT':
99
event_id = aevent['id']
100
calendar_id = ew.get_calendar_id()
101
summary = ew.get_summary()
102
start_date = ew.get_start_date()
103
end_date = ew.get_end_date()
104
description = ew.get_description()
106
md = Gtk.MessageDialog( parent = None,
107
flags = Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
108
type = Gtk.MessageType.ERROR,
109
buttons = Gtk.ButtonsType.OK_CANCEL,
110
message_format = _('Are you sure you want to edit this event?'))
111
if md.run() == Gtk.ResponseType.OK:
113
edit_event = self.googlecalendar.edit_event(calendar_id, event_id, summary, start_date, end_date, description)
114
if edit_event is not None:
115
self.googlecalendar.calendars[calendar_id]['events'][edit_event['id']] = edit_event
120
selection.unselect_all()
65
121
def set_date(self,adate):
66
122
self.adate = adate
67
123
self.column.set_title(str(adate.day))
160
218
table1.attach(Gtk.Label(DAY_OF_WEEK[column-1]),column,column+1,0,1,xoptions = Gtk.AttachOptions.SHRINK, yoptions = Gtk.AttachOptions.SHRINK)
161
219
for row in range(1,7):
162
220
for column in range(1,8):
163
self.days[contador] = DayWidget()
221
self.days[contador] = DayWidget(self.googlecalendar,callback=self.update)
222
self.days[contador].connect('edited',self.on_edited)
164
223
table1.attach(self.days[contador],column,column+1,row,row+1,xoptions = Gtk.AttachOptions.EXPAND, yoptions = Gtk.AttachOptions.EXPAND)
208
273
self.days[contador].clear()
276
if self.googlecalendar is not None:
277
events = self.googlecalendar.getAllEventsOnMonth(self.adate)
278
for contador in range(0,42):
279
if self.days[contador].get_date().date() in events.keys():
280
eventsday = events[self.days[contador].get_date().date()]
282
self.days[contador].set_events(eventsday)
284
self.days[contador].clear()
286
self.days[contador].clear()
211
288
def on_button0_clicked(self,widget):
212
289
year = self.adate.year - 1