def _create_calendar(self, name, username, type= CalendarType.Private): calendar = Calendar(self.env, None, username) calendar.name = name calendar.theme = 1 calendar.type = type id = calendar.insert() return calendar
def remove(self, req, id): """ Deleted the given calendar""" username = req.authname req.perm.require('CALENDAR_DELETE', self.calendar_realm(id=id)) c = Calendar(self.env, id) c.delete() return cal_as_dict(c, username)
def calendars(self, req): cal_id = req.args.get('obj_id') if cal_id: req.perm.require('CALENDAR_MODIFY', Resource('calendar', cal_id)) cal = Calendar(self.env, cal_id) else: req.perm.require('CALENDAR_CREATE') cal = Calendar(self.env) data = {'calendar': cal} return 'itteco_calendar_edit.html', data, 'text/html'
def events(self, req): user = req.authname event_id = req.args.get("obj_id") or None event = Event(self.env, event_id) cal_id = event_id and event.calendar or req.args.get("calendar") own = True if not event_id: event.calendar = cal_id event.allday = req.args.get("allDay") == "true" and 1 or 0 ticket = req.args.get("ticket") ticket = ticket and Ticket(self.env, int(ticket)) or None if ticket and ticket.exists and "TICKET_VIEW" in req.perm(ticket.resource): event.ticket = ticket.id event.title = ticket["summary"] event.time_track = TimeTrack(self.env) getdate = lambda x: to_datetime(long(req.args[x]), utc) event.dtstart = getdate("date") event.dtend = event.dtstart + timedelta(minutes=60) else: cal = Calendar(self.env, event.calendar) own = cal.owner == user tt = TimeTrack(self.env, event.id, user) event.time_track = tt data = { "event": event and event_as_dict(event, own) or None, "tickets": TicketConfigRPC(self.env).my_active_tickets(req), "calendars": [ cal_as_dict(cal, user) for cal in Calendar.select(self.env, owner=user) if cal.type != CalendarType.Reference ], } return "itteco_event_form.html", data, None
def query(self, req): """ Returns list of available Calendars. """ username = req.authname out = [] for c in Calendar.select(self.env): if 'CALENDAR_VIEW' in req.perm(c.resource): out.append(cal_as_dict(c, username)) return out
def save(self, req, id, calendar, name, allday, start, end, description, ticket, timetrack, auto, time, tzoffset=None): username = req.authname id = id and str(id) or None tz = tzoffset and FixedOffset(-1*int(tzoffset), 'Browser offset') or utc c = Calendar(self.env, calendar) req.perm.require('CALENDAR_VIEW', c.resource) e = self.save_event(req, id, c, name, allday, start, end, description, ticket, tz) self.save_timetrack(req, e, timetrack, auto, time) self.env.log.debug('tt %s' % (e.time_track)) return event_as_dict(e)
def check_permission(self, action, username, resource, perm): if action not in ['CALENDAR_VIEW', 'CALENDAR_MODIFY', 'CALENDAR_DELETE'] \ or not resource or resource.realm !='calendar' or resource.id is None: return if 'CALENDAR_ADMIN' in perm: return True calObject = Calendar(self.env, resource.id) return calObject.exists and (calObject.owner==username or \ ('CALENDAR_VIEW'==action and calObject.type==CalendarType.Shared))
def _create_calendar(self, name, username, type=CalendarType.Private): calendar = Calendar(self.env, None, username) calendar.name = name calendar.theme = 1 calendar.type = type id = calendar.insert() return calendar
def events(self, req): user = req.authname event_id = req.args.get('obj_id') or None event = Event(self.env, event_id) cal_id = event_id and event.calendar or req.args.get('calendar') own = True if not event_id: event.calendar = cal_id event.allday = req.args.get('allDay') == 'true' and 1 or 0 ticket = req.args.get('ticket') ticket = ticket and Ticket(self.env, int(ticket)) or None if ticket and ticket.exists and 'TICKET_VIEW' in req.perm( ticket.resource): event.ticket = ticket.id event.title = ticket['summary'] event.time_track = TimeTrack(self.env) getdate = lambda x: to_datetime(long(req.args[x]), utc) event.dtstart = getdate('date') event.dtend = event.dtstart + timedelta(minutes=60) else: cal = Calendar(self.env, event.calendar) own = cal.owner == user tt = TimeTrack(self.env, event.id, user) event.time_track = tt data = { 'event': event and event_as_dict(event, own) or None, 'tickets': TicketConfigRPC(self.env).my_active_tickets(req), 'calendars': [ cal_as_dict(cal, user) for cal in Calendar.select(self.env, owner=user) if cal.type != CalendarType.Reference ] } return 'itteco_event_form.html', data, None
def save(self, req, id, name, theme, type, ref=0): """ Creates or saves a calendar. """ username = req.authname id = id or None if not id: req.perm.require('CALENDAR_CREATE') else: req.perm.require('CALENDAR_MODIFY', self.calendar_realm(id=id)) c = Calendar(self.env, id) c.name = name c.theme = theme c.type = type c.ref = ref if id and c.exists: c.update() else: c.owner = username c.insert() return cal_as_dict(c, username)
def get_calendar_by_id(env, cal_id): cals= Calendar.select(env, id=cal_id) return cals and cals[0] or None
def get_calendar_by_id(env, cal_id): cals = Calendar.select(env, id=cal_id) return cals and cals[0] or None