Changeset 4a686c60d84cd90bacfd042a704be56f7e6c1921 in indico


Ignore:
Timestamp:
01/17/12 15:56:30 (4 months ago)
Author:
Alberto Resco Perez <alberto.resco.perez@…>
Children:
98d4e60409aca1749b7dbfe7caf1353a34e5998a
Parents:
f6afd0af7bf586cff134a6f7f1410f98839f00bf
git-author:
Alberto Resco Perez <alberto.resco.perez@…> (01/17/12 15:56:30)
git-committer:
Jose Benito <jose.benito.gonzalez@…> (02/14/12 17:37:05)
Message:

[FTR] Add analytics support

  • Created a new tab in Administration->Services.
  • Allows to enable/disable the analytics.
  • Allows to set the analytics code.
  • Includes, if enabled, the code in the Header or Body.
  • Closes #973.
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/common/info.py

    r8d00c2 r4a686c  
    8888        self._apiCacheTTL = 600 
    8989        self._apiSignatureTTL = 600 
     90        self._analyticsActive = False 
     91        self._analyticsCode = "" 
     92        self._analyticsCodeLocation = "head" 
    9093 
    9194        # Event display style manager 
     
    435438        self._apiSignatureTTL = v 
    436439 
    437  
     440    def isAnalyticsActive(self): 
     441        if hasattr(self, '_analyticsActive'): 
     442            return self._analyticsActive 
     443        else: 
     444            self._analyticsActive = False 
     445            return False 
     446 
     447    def setAnalyticsActive(self, v): 
     448        self._analyticsActive = v 
     449 
     450    def getAnalyticsCode(self): 
     451        if hasattr(self, '_analyticsCode'): 
     452            return self._analyticsCode 
     453        else: 
     454            self._analyticsCode = "" 
     455            return "" 
     456 
     457    def setAnalyticsCode(self, v): 
     458        self._analyticsCode = v 
     459 
     460 
     461    def getAnalyticsCodeLocation(self): 
     462        if hasattr(self, '_analyticsCodeLocation'): 
     463            return self._analyticsCodeLocation 
     464        else: 
     465            self._analyticsCodeLocation = "" 
     466            return "" 
     467 
     468    def setAnalyticsCodeLocation(self, v): 
     469        self._analyticsCodeLocation = v 
    438470 
    439471class HelperMaKaCInfo: 
  • indico/MaKaC/webinterface/pages/admins.py

    r558065 r4a686c  
    469469        self._subTabHTTPAPI_Keys = self._subTabHTTPAPI.newSubTab( "api_keys", _("API Keys"), \ 
    470470                urlHandlers.UHAdminAPIKeys.getURL() ) 
     471        self._subTabAnalytics = self._tabCtrl.newTab( "analytics", _("Analytics"), \ 
     472                urlHandlers.UHAnalytics.getURL() ) 
    471473 
    472474    def _getPageContent(self, params): 
     
    26152617        vars["removeIcon"] = Config.getInstance().getSystemIconURL( "remove" ) 
    26162618        return vars 
     2619 
     2620 
     2621class WPAnalytics( WPServicesCommon ): 
     2622 
     2623    def __init__( self, rh): 
     2624        WPServicesCommon.__init__( self, rh ) 
     2625 
     2626    def _getTabContent( self, params ): 
     2627        wc = WAnalytics() 
     2628        return wc.getHTML( params ) 
     2629 
     2630    def _setActiveTab( self ): 
     2631        self._subTabAnalytics.setActive() 
     2632 
     2633class WAnalytics(wcomponents.WTemplated): 
     2634 
     2635    def getVars( self ): 
     2636        vars = wcomponents.WTemplated.getVars( self ) 
     2637        minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() 
     2638        vars["analyticsActive"] = minfo.isAnalyticsActive() 
     2639        vars["analyticsCode"] = minfo.getAnalyticsCode() 
     2640        vars["analyticsCodeLocation"] = minfo.getAnalyticsCodeLocation() 
     2641        vars["analyticsFormURL"] = urlHandlers.UHSaveAnalytics.getURL() 
     2642        return vars 
  • indico/MaKaC/webinterface/rh/services.py

    rbcb158 r4a686c  
    414414 
    415415        self._redirect(urlHandlers.UHOAIPrivateConfig.getURL()) 
     416 
     417class RHAnalytics( RHServicesBase ): 
     418    _uh = urlHandlers.UHAnalytics 
     419 
     420    def _process( self ): 
     421        p = adminPages.WPAnalytics(self) 
     422        return p.display() 
     423 
     424 
     425class RHSaveAnalytics(RHServicesBase): 
     426    _uh = urlHandlers.UHSaveAnalytics 
     427 
     428    def _checkParams( self, params ): 
     429        RHServicesBase._checkParams( self, params ) 
     430        self._params = params 
     431        self._analyticsActive = self._params.get('analyticsActive') == 'yes' 
     432        self._analyticsCode = self._params.get('analyticsCode') 
     433        self._analyticsCodeLocation = self._params.get('analyticsCodeLocation') 
     434        self._doNotSanitizeFields.append("analyticsCode") 
     435 
     436    def _process(self): 
     437        minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() 
     438        if 'analyticsActive' in self._params: 
     439            minfo.setAnalyticsActive(self._analyticsActive) 
     440        if 'analyticsCode' in self._params: 
     441            minfo.setAnalyticsCode(self._analyticsCode) 
     442        if 'analyticsCodeLocation' in self._params: 
     443            minfo.setAnalyticsCodeLocation(self._analyticsCodeLocation) 
     444        self._redirect( urlHandlers.UHAnalytics.getURL() ) 
  • indico/MaKaC/webinterface/tpls/HTMLHeader.tpl

    r60708b r4a686c  
    1919% if social.get('facebook', {}).get('appId', None): 
    2020        <meta property="fb:app_id" content="${social['facebook']['appId']}"/> 
     21% endif 
     22 
     23% if analyticsActive and analyticsCodeLocation == "head": 
     24        ${analyticsCode} 
    2125% endif 
    2226 
     
    6973    <body> 
    7074        ${ page._getWarningMessage() } 
     75    % if analyticsActive and analyticsCodeLocation == "body": 
     76        ${analyticsCode} 
     77    % endif 
  • indico/MaKaC/webinterface/urlHandlers.py

    r4fd80c r4a686c  
    30993099class UHAdminAPIKeys( URLHandler ): 
    31003100    _relativeURL = "adminServices.py/apiKeys" 
     3101 
     3102class UHAnalytics( URLHandler ): 
     3103    _relativeURL = "adminServices.py/analytics" 
     3104 
     3105class UHSaveAnalytics( URLHandler ): 
     3106    _relativeURL = "adminServices.py/saveAnalytics" 
    31013107 
    31023108class UHBadgeTemplates( URLHandler ): 
  • indico/MaKaC/webinterface/wcomponents.py

    r740417 r4a686c  
    260260    def getVars( self ): 
    261261        vars = WTemplated.getVars( self ) 
     262        minfo = info.HelperMaKaCInfo.getMaKaCInfoInstance() 
     263        vars["analyticsActive"] = minfo.isAnalyticsActive() 
     264        vars["analyticsCode"] = minfo.getAnalyticsCode() 
     265        vars["analyticsCodeLocation"] = minfo.getAnalyticsCodeLocation() 
     266 
    262267 
    263268        if DBMgr.getInstance().isConnected(): 
  • indico/htdocs/adminServices.py

    rbcb158 r4a686c  
    100100    return api.RHAdminAPIOptionsSet(req).process(params) 
    101101 
    102  
    103102def apiKeys(req, **params): 
    104103    return api.RHAdminAPIKeys(req).process(params) 
     104 
     105def analytics(req, **params): 
     106    return services.RHAnalytics(req).process(params) 
     107 
     108def saveAnalytics(req, **params): 
     109    return services.RHSaveAnalytics(req).process(params) 
Note: See TracChangeset for help on using the changeset viewer.