Пример #1
0
    def getVars(self):
        variables = WCSPageTemplateBase.getVars(self)

        bookingClass = CollaborationTools.getCSBookingClass(self._pluginId)
        variables["CanBeNotified"] = bookingClass._canBeNotifiedOfEventDateChanges

        return variables
Пример #2
0
    def getVars(self):
        variables = WCSPageTemplateBase.getVars(self)

        bookingClass = CollaborationTools.getCSBookingClass(self._pluginId)
        variables["CanBeNotified"] = bookingClass._canBeNotifiedOfEventDateChanges

        return variables
Пример #3
0
 def getVars( self ):
     vars = wcomponents.WTemplated.getVars( self )
     
     plugins = self._tabPlugins
     singleBookingPlugins, multipleBookingPlugins = CollaborationTools.splitPluginsByAllowMultiple(plugins)
     CSBookingManager = self._conf.getCSBookingManager()
     
     bookingsS = {}
     for p in singleBookingPlugins:
         bookingList = CSBookingManager.getBookingList(filterByType = p.getName())
         if len(bookingList) > 0:
             bookingsS[p.getName()] = DictPickler.pickle(bookingList[0])
             
     bookingsM = DictPickler.pickle(CSBookingManager.getBookingList(
         sorted = True,
         notify = True,
         filterByType = [p.getName() for p in multipleBookingPlugins]))
     
     vars["Conference"] = self._conf
     vars["AllPlugins"] = plugins
     vars["SingleBookingPlugins"] = singleBookingPlugins
     vars["BookingsS"] = bookingsS
     vars["MultipleBookingPlugins"] = multipleBookingPlugins
     vars["BookingsM"] = bookingsM
     vars["Tab"] = self._activeTab
     vars["EventDate"] = formatDateTime(getAdjustedDate(nowutc(),self._conf))
     
     from MaKaC.webinterface.rh.collaboration import RCCollaborationAdmin, RCCollaborationPluginAdmin
     vars["UserIsAdmin"] = RCCollaborationAdmin.hasRights(user = self._user) or RCCollaborationPluginAdmin.hasRights(user = self._user, plugins = self._tabPlugins)
     
     singleBookingForms = {}
     multipleBookingForms = {}
     JSCodes = {}
     canBeNotified = {}
     
     for plugin in singleBookingPlugins:
         pluginName = plugin.getName()
         templateClass = CollaborationTools.getTemplateClass(pluginName, "WNewBookingForm")
         singleBookingForms[pluginName] = templateClass(self._conf, pluginName, self._user).getHTML()
         
     for plugin in multipleBookingPlugins:
         pluginName = plugin.getName()
         templateClass = CollaborationTools.getTemplateClass(pluginName, "WNewBookingForm")
         multipleBookingForms[pluginName] = templateClass(self._conf, pluginName, self._user).getHTML()
     
     for plugin in plugins:
         pluginName = plugin.getName()
         
         templateClass = CollaborationTools.getTemplateClass(pluginName, "WMain")
         JSCodes[pluginName] = templateClass(pluginName, self._conf).getHTML()
         
         bookingClass = CollaborationTools.getCSBookingClass(pluginName)
         canBeNotified[pluginName] = bookingClass._canBeNotifiedOfEventDateChanges
         
     vars["SingleBookingForms"] = singleBookingForms    
     vars["MultipleBookingForms"] = multipleBookingForms
     vars["JSCodes"] = JSCodes
     vars["CanBeNotified"] = canBeNotified
     
     return vars
Пример #4
0
 def testCreateCSBookingObject(self):
     with self._context('database'):
         # we don't bother setting a proper Conference as 2nd argument
         self.assertEquals(
             type(
                 CollaborationTools.getCSBookingClass("Vidyo")("Vidyo",
                                                               None)),
             CSBooking)
Пример #5
0
    def call(self):
        result = []
        itiAll = IndexInformation("all")
        pluginIndexes = []
        commonIndexes = {}
        plugins = self._pluginType.getPluginList(doSort=True,
                                                 includeNonActive=True)
        pluginNames = [p.getId() for p in plugins if p.isActive()]

        for pluginName in pluginNames:
            csBookingClass = CollaborationTools.getCSBookingClass(pluginName)

            if not csBookingClass._shouldBeIndexed:
                continue
            itiAll.addPlugin(pluginName)
            if csBookingClass._hasAcceptReject:
                itiAll.setHasShowOnlyPending(True)
            if csBookingClass._hasStartDate:
                itiAll.setHasViewByStartDate(True)

            iti = IndexInformation(pluginName)
            iti.addPlugin(pluginName)
            iti.setHasShowOnlyPending(csBookingClass._hasAcceptReject)
            iti.setHasViewByStartDate(csBookingClass._hasStartDate)
            pluginIndexes.append(iti)

            for commonIndexName in csBookingClass._commonIndexes:
                if not commonIndexName in commonIndexes:
                    commonIndexes[commonIndexName] = IndexInformation(
                        commonIndexName)
                iti = commonIndexes[commonIndexName]
                iti.addPlugin(pluginName)
                if csBookingClass._hasAcceptReject:
                    iti.setHasShowOnlyPending(True)
                if csBookingClass._hasStartDate:
                    iti.setHasViewByStartDate(True)

        commonIndexNames = commonIndexes.keys()
        commonIndexNames.sort()

        result.append(itiAll)
        result.extend(pluginIndexes)
        result.append(IndexInformation("requests"))
        result.extend([commonIndexes[k] for k in commonIndexNames])

        self._pluginType.getOption("pluginsPerIndex").setValue(result)
Пример #6
0
    def call(self):
        result = []
        itiAll = IndexInformation("all")
        pluginIndexes = []
        commonIndexes = {}
        plugins = self._pluginType.getPluginList(doSort=True, includeNonActive=True)
        pluginNames = [p.getId() for p in plugins if p.isActive()]

        for pluginName in pluginNames:
            csBookingClass = CollaborationTools.getCSBookingClass(pluginName)

            if not csBookingClass._shouldBeIndexed:
                continue
            itiAll.addPlugin(pluginName)
            if csBookingClass._hasAcceptReject:
                itiAll.setHasShowOnlyPending(True)
            if csBookingClass._hasStartDate:
                itiAll.setHasViewByStartDate(True)

            iti = IndexInformation(pluginName)
            iti.addPlugin(pluginName)
            iti.setHasShowOnlyPending(csBookingClass._hasAcceptReject)
            iti.setHasViewByStartDate(csBookingClass._hasStartDate)
            pluginIndexes.append(iti)

            for commonIndexName in csBookingClass._commonIndexes:
                if not commonIndexName in commonIndexes:
                    commonIndexes[commonIndexName] = IndexInformation(commonIndexName)
                iti = commonIndexes[commonIndexName]
                iti.addPlugin(pluginName)
                if csBookingClass._hasAcceptReject:
                    iti.setHasShowOnlyPending(True)
                if csBookingClass._hasStartDate:
                    iti.setHasViewByStartDate(True)

        commonIndexNames = commonIndexes.keys()
        commonIndexNames.sort()

        result.append(itiAll)
        result.extend(pluginIndexes)
        result.append(IndexInformation("requests"))
        result.extend([commonIndexes[k] for k in commonIndexNames])

        self._pluginType.getOption("pluginsPerIndex").setValue(result)
Пример #7
0
    def getVars(self):
        vars = wcomponents.WTemplated.getVars(self)

        plugins = self._tabPlugins
        singleBookingPlugins, multipleBookingPlugins = CollaborationTools.splitPluginsByAllowMultiple(plugins)
        csBookingManager = Catalog.getIdx("cs_bookingmanager_conference").get(self._conf.getId())

        bookingsS = {}

        for p in singleBookingPlugins:
            bookingList = csBookingManager.getBookingList(filterByType = p.getId())
            if len(bookingList) > 0:
                bookingsS[p.getId()] = fossilize(bookingList[0]) #will use ICSBookingConfModifBaseFossil or inheriting fossil

        bookingsM = fossilize(csBookingManager.getBookingList(
            sorted = True,
            notify = True,
            filterByType = [p.getName() for p in multipleBookingPlugins])) #will use ICSBookingConfModifBaseFossil or inheriting fossil

        vars["Conference"] = self._conf
        vars["AllPlugins"] = plugins
        vars["SingleBookingPlugins"] = singleBookingPlugins
        vars["BookingsS"] = bookingsS
        vars["MultipleBookingPlugins"] = multipleBookingPlugins
        vars["BookingsM"] = bookingsM
        vars["Tab"] = self._activeTab
        vars["EventDate"] = formatDateTime(getAdjustedDate(nowutc(), self._conf))

        from MaKaC.plugins.Collaboration.handlers import RCCollaborationAdmin, RCCollaborationPluginAdmin, RCVideoServicesUser

        vars["UserIsAdmin"] = RCCollaborationAdmin.hasRights(self._user) or RCCollaborationPluginAdmin.hasRights(self._user, plugins=self._tabPlugins)

        hasCreatePermissions = {}
        videoServSupport = {}
        isAllowedToSearch = {}
        for plugin in plugins:
            pname = plugin.getName()
            hasCreatePermissions[pname] = RCVideoServicesUser.hasRights(user=self._user, pluginName=pname)
            videoServSupport[pname] = plugin.getOption("contactSupport").getValue() \
                if plugin.hasOption("contactSupport") else ""
            isAllowedToSearch[pname] = plugin.getOption("searchAllow").getValue() if plugin.hasOption("searchAllow")  \
                else False
        vars["HasCreatePermissions"] = hasCreatePermissions
        vars["VideoServiceSupport"] = videoServSupport
        vars["isAllowedToSearch"] = isAllowedToSearch

        singleBookingForms = {}
        multipleBookingForms = {}
        jsCodes = {}
        canBeNotified = {}

        for plugin in singleBookingPlugins:
            pluginId = plugin.getId()
            templateClass = CollaborationTools.getTemplateClass(pluginId, "WNewBookingForm")
            singleBookingForms[pluginId] = templateClass(self._conf, plugin.getId(), self._user).getHTML()

        for plugin in multipleBookingPlugins:
            pluginId = plugin.getId()
            templateClass = CollaborationTools.getTemplateClass(pluginId, "WNewBookingForm")
            newBookingFormHTML = templateClass(self._conf, plugin.getId(), self._user).getHTML()

            advancedTabClass = CollaborationTools.getTemplateClass(pluginId, "WAdvancedTab")
            if advancedTabClass:
                advancedTabClassHTML = advancedTabClass(self._conf, plugin.getId(), self._user).getHTML()
            else:
                advancedTabClassHTML = WConfModifCollaborationDefaultAdvancedTab(self._conf, plugin, self._user).getHTML()
            multipleBookingForms[pluginId] = (newBookingFormHTML, advancedTabClassHTML)

        for plugin in plugins:
            pluginId = plugin.getId()

            templateClass = CollaborationTools.getTemplateClass(pluginId, "WMain")
            jsCodes[pluginId] = templateClass(self._conf, plugin.getId(), self._user).getHTML()

            bookingClass = CollaborationTools.getCSBookingClass(pluginId)
            canBeNotified[pluginId] = bookingClass._canBeNotifiedOfEventDateChanges

        vars["SingleBookingForms"] = singleBookingForms
        vars["MultipleBookingForms"] = multipleBookingForms
        vars["JSCodes"] = jsCodes
        vars["CanBeNotified"] = canBeNotified

        return vars
Пример #8
0
    def getVars(self):
        vars = wcomponents.WTemplated.getVars(self)

        plugins = self._tabPlugins
        singleBookingPlugins, multipleBookingPlugins = CollaborationTools.splitPluginsByAllowMultiple(plugins)
        csBookingManager = self._conf.getCSBookingManager()

        bookingsS = {}

        for p in singleBookingPlugins:
            bookingList = csBookingManager.getBookingList(filterByType = p.getId())
            if len(bookingList) > 0:
                bookingsS[p.getId()] = fossilize(bookingList[0]) #will use ICSBookingConfModifBaseFossil or inheriting fossil

        bookingsM = fossilize(csBookingManager.getBookingList(
            sorted = True,
            notify = True,
            filterByType = [p.getName() for p in multipleBookingPlugins])) #will use ICSBookingConfModifBaseFossil or inheriting fossil

        vars["Conference"] = self._conf
        vars["AllPlugins"] = plugins
        vars["SingleBookingPlugins"] = singleBookingPlugins
        vars["BookingsS"] = bookingsS
        vars["MultipleBookingPlugins"] = multipleBookingPlugins
        vars["BookingsM"] = bookingsM
        vars["Tab"] = self._activeTab
        vars["EventDate"] = formatDateTime(getAdjustedDate(nowutc(), self._conf))

        from MaKaC.webinterface.rh.collaboration import RCCollaborationAdmin, RCCollaborationPluginAdmin, RCVideoServicesUser
        vars["UserIsAdmin"] = RCCollaborationAdmin.hasRights(user = self._user) or RCCollaborationPluginAdmin.hasRights(user = self._user, plugins = self._tabPlugins)

        hasCreatePermissions = {}
        videoServSupport = {}
        for plugin in plugins:
            pname = plugin.getName()
            hasCreatePermissions[pname] = RCVideoServicesUser.hasRights(user = self._user, pluginName = pname)
            videoServSupport[pname] = plugin.getOption("contactSupport").getValue() if plugin.hasOption("contactSupport") else ""
        vars["HasCreatePermissions"] = hasCreatePermissions
        vars["VideoServiceSupport"] = videoServSupport




        singleBookingForms = {}
        multipleBookingForms = {}
        jsCodes = {}
        canBeNotified = {}

        for plugin in singleBookingPlugins:
            pluginId = plugin.getId()
            templateClass = CollaborationTools.getTemplateClass(pluginId, "WNewBookingForm")
            singleBookingForms[pluginId] = templateClass(self._conf, plugin.getId(), self._user).getHTML()

        for plugin in multipleBookingPlugins:
            pluginId = plugin.getId()
            templateClass = CollaborationTools.getTemplateClass(pluginId, "WNewBookingForm")
            newBookingFormHTML = templateClass(self._conf, plugin.getId(), self._user).getHTML()

            advancedTabClass = CollaborationTools.getTemplateClass(pluginId, "WAdvancedTab")
            if advancedTabClass:
                advancedTabClassHTML = advancedTabClass(self._conf, plugin.getId(), self._user).getHTML()
            else:
                advancedTabClassHTML = WConfModifCollaborationDefaultAdvancedTab(self._conf, plugin, self._user).getHTML()
            multipleBookingForms[pluginId] = (newBookingFormHTML, advancedTabClassHTML)

        for plugin in plugins:
            pluginId = plugin.getId()

            templateClass = CollaborationTools.getTemplateClass(pluginId, "WMain")
            jsCodes[pluginId] = templateClass(self._conf, plugin.getId(), self._user).getHTML()

            bookingClass = CollaborationTools.getCSBookingClass(pluginId)
            canBeNotified[pluginId] = bookingClass._canBeNotifiedOfEventDateChanges

        vars["SingleBookingForms"] = singleBookingForms
        vars["MultipleBookingForms"] = multipleBookingForms
        vars["JSCodes"] = jsCodes
        vars["CanBeNotified"] = canBeNotified

        return vars
Пример #9
0
 def testCreateCSBookingObject(self):
     with self._context('database'):
         # we don't bother setting a proper Conference as 2nd argument
         self.assertEquals(type(CollaborationTools.getCSBookingClass("Vidyo")("Vidyo", None)),
                           CSBooking)
Пример #10
0
 def testObtainVidyoClass(self):
     with self._context('database'):
         self.assertEquals(CollaborationTools.getCSBookingClass("Vidyo"),
                           CSBooking)
Пример #11
0
 def testObtainVidyoClass(self):
     with self._context('database'):
         self.assertEquals(CollaborationTools.getCSBookingClass("Vidyo"),
                           CSBooking)