def __init__(self, context, request): self.context = context self.request = request self.calendar = interfaces.ISolgemaFullcalendarProperties( aq_inner(context), None) self.portal = getToolByName(self.context, 'portal_url').getPortalObject() self._ts = getToolByName(context, 'translation_service') self.portal_language = self.getPortalLanguage()
def __call__(self): portal = getToolByName(self.context, 'portal_url').getPortalObject() context = aq_inner(self.context) target_folder = interfaces.ISolgemaFullcalendarProperties( context, None).target_folder target_folder = target_folder \ and portal.unrestrictedTraverse('/'+ portal.id + target_folder) \ or aq_parent(context) if not getSecurityManager().checkPermission('Add portal content', target_folder): raise Unauthorized, "You can't add an event on %s" % str( target_folder) query = self.context.buildQuery() copyDict = getCopyObjectsUID(self.request) #Check whether our context actually has a query and if so, whether #it has a Type criterion specified. if query and query.has_key('Type'): if isinstance(query['Type'], (list, tuple)) and len(query['Type']) > 1: return json.dumps({'display': True}) else: portal_type = isinstance( query['Type'], (tuple, list)) and query['Type'][0] or query['Type'] if copyDict and portal.restrictedTraverse( copyDict['url']).portal_type == portal_type: return json.dumps({'display': True}) else: portal_type = 'Event' pTypes = [ a for a in getToolByName(context, 'portal_types').listTypeInfo() if a.id == portal_type ] pTypeTitle = pTypes and pTypes[0].Title() or portal_type typeTitle = translate(pTypeTitle, context=self.request) if HAS_PLONE40: title = PLMF(u'heading_add_item', default='Add ${itemtype}', mapping={'itemtype': typeTitle}) else: title = PLMF(u'label_add_type', default='Add ${type}', mapping={'type': typeTitle}) return json.dumps({ 'display': False, 'type': portal_type, 'title': translate(title, context=self.request) })
def __call__(self): calendar = interfaces.ISolgemaFullcalendarProperties(aq_inner(self.context), None) li = deepcopy(interfaces.IListBaseQueryCriteria(self.context)()) for criteria in li: if criteria['i'] == 'portal_type' and len(criteria['v']) == 1: li.remove(criteria) if hasattr(calendar, 'availableCriterias') \ and getattr(calendar, 'availableCriterias', None) != None: li = [a for a in li if a['i'] in calendar.availableCriterias] return dict([(a['i'], a['v']) for a in li])
def listQueryTopicCriteria(topic): calendar = interfaces.ISolgemaFullcalendarProperties(aq_inner(topic), None) li = listBaseQueryTopicCriteria(topic) for criteria in li: if criteria.meta_type == 'ATPortalTypeCriterion' and len( criteria.getCriteriaItems()[0][1]) == 1: li.remove(criteria) if hasattr(calendar, 'availableCriterias') and getattr( calendar, 'availableCriterias', None) != None: li = [a for a in li if a.Field() in calendar.availableCriterias] return li
def upgrade210(context): checkViews(context) catalog = getToolByName(context, 'portal_catalog') for topic in [a.getObject() for a in catalog.searchResults(portal_type="Topic")]: calendar = interfaces.ISolgemaFullcalendarProperties(topic, None) newColors = {} if calendar and getattr(calendar, 'queryColors', None): for k,v in calendar.queryColors.items(): colDict = {} for l,w in v.items(): l = safe_unicode(l) colDict[str(component.queryUtility(IURLNormalizer).normalize(l))] = w newColors[k] = colDict.copy() calendar.queryColors = newColors.copy()
def __init__(self, context, request): super(SFAddMenu, self).__init__(context, request) self.portal = getToolByName(self.context, 'portal_url').getPortalObject() self.portal_url = self.portal.absolute_url() self.adapted = interfaces.ISolgemaFullcalendarProperties( aq_inner(context), None) target_folder = getattr(self.adapted, 'target_folder', None) self.addContext = target_folder and self.portal.unrestrictedTraverse( '/' + self.portal.id + target_folder) or aq_parent( aq_inner(self.context)) self.EventAllDay = self.request.get('EventAllDay', False) self.ReqAllDay = self.EventAllDay and '&EventAllDay=' + self.EventAllDay or '' self.startDate = self.request.get('startDate', '') self.endDate = self.request.get('endDate', '') self.query = self.context.buildQuery() self.addableTypes = self.getMenuAddableTypes(self.query)
def __init__(self, context, request): self.context = context self.request = request self.calendar = interfaces.ISolgemaFullcalendarProperties( aq_inner(context), None)
def __init__(self, context, request): super(SolgemaFullcalendarTopicJS, self).__init__(context, request) self.calendar = interfaces.ISolgemaFullcalendarProperties( aq_inner(context), None) self._date = _get_date_from_req(request)
def __init__(self, context, request): super(SolgemaFullcalendarDxView, self).__init__(context, request) self.calendar = interfaces.ISolgemaFullcalendarProperties( aq_inner(context), None)
def __init__(self, context, request): self.context = context self.request = request self.portal = context.portal_url.getPortalObject() self.calendar = interfaces.ISolgemaFullcalendarProperties(aq_inner(context), None)
def __call__(self): portal = getToolByName(self.context, 'portal_url').getPortalObject() portal_types = getToolByName(portal, 'portal_types') context = aq_inner(self.context) target_folder = getattr( interfaces.ISolgemaFullcalendarProperties(context, None), 'target_folder', None) target_folder = target_folder \ and portal.unrestrictedTraverse('/'+ portal.id + target_folder) \ or aq_parent(context) if not getSecurityManager().checkPermission('Add portal content', target_folder): raise Unauthorized, "You can't add an event on %s" % str( target_folder) query = hasattr(self.context, 'buildQuery') and self.context.buildQuery() or {} query = normalize_type_query(query, portal) copyDict = getCopyObjectsUID(self.request) # The 'Item Type' criteria uses the 'Type' index while the 'Item Type # (internal)' criteria uses the 'portal_type' index. # # We need to check for both, portal_type first, because it's more # specific than 'Type', which just indexes the content type's Title # property (which can be non-unique). index = query.get('portal_type', query.get('Type')) self.request.response.setHeader("Content-type", "application/json") if index: if isinstance(index, (list, tuple)) and len(index) > 1: return json.dumps({'display': True}) portal_type = isinstance(index, (tuple, list)) and index[0] or index if copyDict and portal.restrictedTraverse( copyDict['url']).portal_type == portal_type: return json.dumps({'display': True}) elif query.get('Type'): portal_type = isinstance( query['Type'], (tuple, list)) and query['Type'][0] or query['Type'] if copyDict and portal.restrictedTraverse( copyDict['url']).portal_type == portal_type: return json.dumps({'display': True}) else: portal_type = getattr( interfaces.ISolgemaFullcalendarProperties(context, None), 'eventType', 'Event') pTypes = [ a for a in portal_types.listTypeInfo() if a.id == portal_type ] pTypeTitle = pTypes and pTypes[0].Title() or portal_type typeTitle = translate(pTypeTitle, context=self.request) if HAS_PLONE40: title = PLMF(u'heading_add_item', default='Add ${itemtype}', mapping={'itemtype': typeTitle}) else: title = PLMF(u'label_add_type', default='Add ${type}', mapping={'type': typeTitle}) return json.dumps({ 'display': False, 'type': portal_type, 'title': translate(title, context=self.request) })
def __init__(self, context, request, name='plone.app.event.dx.event'): name = getattr(interfaces.ISolgemaFullcalendarProperties(context, None), 'eventType', 'Event') ti = getToolByName(context, 'portal_types').getTypeInfo(name) request.form['ajax_load'] = 1 request.form['ajax_include_head'] = 1 super(InlineFrameAddView, self).__init__(context, request, ti)