Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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'
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
    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))
Ejemplo n.º 8
0
 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
Ejemplo n.º 9
0
 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
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
def get_calendar_by_id(env, cal_id):
    cals= Calendar.select(env, id=cal_id)
    return cals and cals[0] or None
Ejemplo n.º 12
0
def get_calendar_by_id(env, cal_id):
    cals = Calendar.select(env, id=cal_id)
    return cals and cals[0] or None