示例#1
0
 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
示例#3
0
文件: folder.py 项目: Vinsurya/Plone
 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
示例#4
0
 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()
示例#5
0
 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
示例#6
0
 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
示例#7
0
    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 []
示例#8
0
    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 []
示例#9
0
    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
示例#10
0
 def is_folder(self):
     return IATFolder.providedBy(self.context) or \
         IATBTreeFolder.providedBy(self.context)
示例#11
0
 def raw(self):
     if (not IATDocument.providedBy(self.context)
         and not IATFolder.providedBy(self.context)):
         return []
     urls = ILinkList(self.context).urls
     return urls
示例#12
0
    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&nbsp;</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>&nbsp;</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>&nbsp;</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
示例#13
0
    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&nbsp;</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>&nbsp;</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>&nbsp;</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