def getTargetFolder(self): target_folder = getattr(self.calendar, 'target_folder', None) if target_folder: addContext = self.portal.unrestrictedTraverse('/' + self.portal.id + target_folder) elif IATFolder.providedBy(self.context) or IDexterityContainer.providedBy(self.context): addContext = self.context else: addContext = aq_parent(aq_inner(self.context)) return addContext.absolute_url()
def getTargetFolder(self): target_folder = getattr(self.calendar, "target_folder", None) if target_folder: addContext = self.portal.unrestrictedTraverse("/" + self.portal.id + target_folder) elif IATFolder.providedBy(self.context): addContext = self.context else: addContext = aq_parent(aq_inner(self.context)) return addContext
def getNextPreviousParentValue(self): """ If the parent node is also an IATFolder and has next/previous navigation enabled, then let this folder have it enabled by default as well """ parent = self.getParentNode() if IATFolder.providedBy(parent): return parent.getNextPreviousEnabled() else: return False
def show(self): user = getToolByName( self.context, 'portal_membership').getAuthenticatedMember() if (not IATDocument.providedBy(self.context) and not IATFolder.providedBy(self.context)): return False if user.has_permission('Modify portal content', self.context): return True if self.links() != []: return True return False
def videos(self): target = self.target() limit = self.data.limit if target is None: return [] if IRTVideo.providedBy(target): return [ dict(title=target.Title(), description=target.Description(), url=target.absolute_url(), path='/'.join(target.getPhysicalPath()), year=target.getYear(), duration=target.getDuration(), image_url=getImageUrl(target)), ] if IATFolder.providedBy(target): values = [] videos = target.getFolderContents( contentFilter={'object_provides': IRTVideo.__identifier__}) for v in videos: values.append( dict( title=v.Title, description=v.Description, url=v.getURL(), path=v.getPath(), year=v.getYear, duration=v.getDuration, image_url=getImageUrl(v), )) return (limit and values[:limit]) or values if IATTopic.providedBy(target): values = [] videos = target.queryCatalog( contentFilter={'object_provides': IRTVideo.__identifier__}) for v in videos: values.append( dict( title=v.Title, description=v.Description, url=v.getURL(), path=v.getPath(), year=v.getYear, duration=v.getDuration, image_url=getImageUrl(v), )) return (limit and values[:limit]) or values return []
def videos(self): target = self.target() limit = self.data.limit if target is None: return [] if IRTVideo.providedBy(target): return [dict(title=target.Title(), description=target.Description(), url=target.absolute_url(), path='/'.join(target.getPhysicalPath()), year=target.getYear(), duration=target.getDuration(), image_url=getImageUrl(target)), ] if IATFolder.providedBy(target): values = [] videos = target.getFolderContents( contentFilter={'object_provides': IRTVideo.__identifier__}) for v in videos: values.append(dict(title = v.Title, description = v.Description, url = v.getURL(), path=v.getPath(), year = v.getYear, duration = v.getDuration, image_url = getImageUrl(v), )) return (limit and values[:limit]) or values if IATTopic.providedBy(target): values = [] videos = target.queryCatalog( contentFilter={'object_provides': IRTVideo.__identifier__}) for v in videos: values.append(dict(title=v.Title, description=v.Description, url=v.getURL(), path=v.getPath(), year=v.getYear, duration=v.getDuration, image_url=getImageUrl(v), )) return (limit and values[:limit]) or values return []
def links(self): if (not IATDocument.providedBy(self.context) and not IATFolder.providedBy(self.context)): return [] urls = ILinkList(self.context).urls if not urls: return [] portal = getSite() maps = [] if type(urls) not in (ListType, TupleType): urls = [urls] for url in urls: if url.startswith('/'): url = url[1:] ob = portal.restrictedTraverse(url, None) if ob is not None: maps.append(dict(title=ob.Title(), url=url, uid=ob.UID())) return maps
def is_folder(self): return IATFolder.providedBy(self.context) or \ IATBTreeFolder.providedBy(self.context)
def raw(self): if (not IATDocument.providedBy(self.context) and not IATFolder.providedBy(self.context)): return [] urls = ILinkList(self.context).urls return urls
def render(self): currentValues = self.value or {} criteria = self.getCriteria() html = '' for fieldid, selectedItems in [(a['i'], a['v']) for a in criteria]: index = self.context.portal_atct.getIndex(fieldid) fieldname = index.friendlyName or index.index if selectedItems: html += '<br/><b>%s</b><br/><table>' % (fieldname) for item in selectedItems: name = safe_unicode(item) item = str( component.queryUtility(IURLNormalizer).normalize(name)) value = '' if fieldid in currentValues \ and item in currentValues[fieldid]: value = currentValues[fieldid][item] html += """<tr><td>%s </td><td> <input type="text" size="10" name="%s:record" value="%s" class="colorinput" style="background-color:%s;" /> </td></tr>""" % (name, self.name + '.' + fieldid + '.' + item, value, value) html += '</table>' calendar = ISolgemaFullcalendarProperties(self.context, None) gcalSourcesAttr = getattr(calendar, 'gcalSources', '') if gcalSourcesAttr != None: gcalSources = gcalSourcesAttr.split('\n') if gcalSources: html += '<br/><b>%s</b><br/><table>' % ( _('Google Calendar Sources')) fieldid = 'gcalSources' for i in range(len(gcalSources)): url = gcalSources[i] item = 'source' + str(i) value = '' if fieldid in currentValues \ and item in currentValues[fieldid]: value = currentValues[fieldid][item] html += """<tr><td><span title="%s">%s</span> </td></td><td> <input type="text" size="10" name="%s:record" value="%s" class="colorinput" style="background-color:%s;" /> </td></tr>""" % (str(url), 'Source ' + str(i + 1), self.name + '.' + fieldid + '.' + item, value, value) html += '</table>' availableSubFolders = getattr(calendar, 'availableSubFolders', []) if IATFolder.providedBy(self.context) and availableSubFolders: html += '<br/><b>%s</b><br/><table>' % (_('Sub-Folders')) fieldid = 'subFolders' for folderId in availableSubFolders: value = '' if fieldid in currentValues \ and folderId in currentValues[fieldid]: value = currentValues[fieldid][folderId] html += """<tr><td><span title="%s">%s</span> </td></td><td> <input type="text" size="10" name="%s:record" value="%s" class="colorinput" style="background-color:%s;" /> </td></tr>""" % (folderId, folderId, self.name + '.' + fieldid + '.' + folderId, value, value) html += '</table>' return html
def render(self): currentValues = self.value or {} criteria = self.getCriteria() html = '' for fieldid, selectedItems in [(a['i'], a.get('v')) for a in criteria]: index = self.context.portal_atct.getIndex(fieldid) fieldname = index.friendlyName or index.index if selectedItems: html += '<br/><b>%s</b><br/><table>' % (fieldname) if isinstance(selectedItems, unicode): selectedItems = [selectedItems] for item in selectedItems: name = safe_unicode(item) item = str(component.queryUtility(IURLNormalizer).normalize(name)) value = '' if fieldid in currentValues \ and item in currentValues[fieldid]: value = currentValues[fieldid][item] html += """<tr><td>%s </td><td> <input type="text" size="10" name="%s:record" value="%s" class="colorinput" style="background-color:%s;" /> </td></tr>""" % ( name, self.name+'.'+fieldid+'.'+item, value, value) html+='</table>' calendar = ISolgemaFullcalendarProperties(self.context, None) gcalSourcesAttr = getattr(calendar, 'gcalSources', '') if gcalSourcesAttr != None: gcalSources = gcalSourcesAttr.split('\n') if gcalSources: html += '<br/><b>%s</b><br/><table>' % (_('Google Calendar Sources')) fieldid = 'gcalSources' for i in range(len(gcalSources)): url = gcalSources[i] item = 'source'+str(i) value = '' if fieldid in currentValues \ and item in currentValues[fieldid]: value = currentValues[fieldid][item] html += """<tr><td><span title="%s">%s</span> </td></td><td> <input type="text" size="10" name="%s:record" value="%s" class="colorinput" style="background-color:%s;" /> </td></tr>""" % ( str(url), 'Source '+str(i+1), self.name+'.'+fieldid+'.'+item, value, value) html+='</table>' availableSubFolders = getattr(calendar, 'availableSubFolders', []) if (IATFolder.providedBy(self.context) or IDexterityContainer.providedBy(self.context)) and availableSubFolders: html += '<br/><b>%s</b><br/><table>' % (_('Sub-Folders')) fieldid = 'subFolders' for folderId in availableSubFolders: value = '' if fieldid in currentValues \ and folderId in currentValues[fieldid]: value = currentValues[fieldid][folderId] html += """<tr><td><span title="%s">%s</span> </td></td><td> <input type="text" size="10" name="%s:record" value="%s" class="colorinput" style="background-color:%s;" /> </td></tr>""" % ( folderId, folderId, self.name+'.'+fieldid+'.'+folderId, value, value) html+='</table>' return html