Changeset 07abe7 in indico


Ignore:
Timestamp:
03/16/11 10:32:00 (2 years ago)
Author:
Pedro Ferreira <jose.pedro.ferreira@…>
Branches:
master, burotel, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b1, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, 0da0c1403bae8e51d8229f460181c71b9e6dda72
Children:
e88004
Parents:
6328a5
git-author:
Pedro Ferreira <jose.pedro.ferreira@…> (03/16/11 10:31:23)
git-committer:
Pedro Ferreira <jose.pedro.ferreira@…> (03/16/11 10:32:00)
Message:

[FIX] Once again, CategoryStatistics?

Location:
indico
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/statistics.py

    r9abde2 r07abe7  
    4848    def updateStatistics(cls, cat, logger=None): 
    4949        dbi = DBMgr.getInstance() 
     50 
    5051        cls._updateStatistics(cat, dbi, 0, logger) 
    5152        if logger: 
    5253            logger.info("Statistics calculation finished") 
     54 
     55        dbi.commit() 
    5356 
    5457    @classmethod 
     
    9295    def _updateStatistics(cls, cat, dbi, level=0, logger=None): 
    9396 
    94         statistics = cat.getStatistics() 
    95         statistics["events"] = {} 
    96         statistics["contributions"] = {} 
    97         statistics["resources"] = 0 
     97        stats = cat.getStatistics() 
     98        stats["events"] = {} 
     99        stats["contributions"] = {} 
     100        stats["resources"] = 0 
    98101 
    99102        if len(cat.getSubCategoryList()) > 0: 
    100             for cat in cat.getSubCategoryList(): 
    101                 cat._p_changed = 1 
    102  
     103            for scat in cat.getSubCategoryList(): 
    103104                # only at top level 
    104105                if level == 0 and logger: 
    105                     logger.info("Processing '%s' (%s)" % (cat.getTitle(), 
    106                                                           cat.getId())) 
     106                    logger.info("Processing '%s' (%s)" % (scat.getTitle(), 
     107                                                          scat.getId())) 
    107108 
    108                 cls._updateStatistics(cat, dbi, level + 1, logger) 
    109                 # commit after each category 
    110                 dbi.commit() 
     109                cls._updateStatistics(scat, dbi, level + 1, logger) 
    111110 
    112                 for year in cat._statistics["events"]: 
    113                     if year in statistics["events"]: 
    114                         statistics["events"][year] += cat._statistics["events"][year] 
     111                for year in scat._statistics["events"]: 
     112                    if year in stats["events"]: 
     113                        stats["events"][year] += scat._statistics["events"][year] 
    115114                    else: 
    116                         statistics["events"][year] = cat._statistics["events"][year] 
    117                 for year in cat._statistics["contributions"]: 
    118                     if year in statistics["contributions"]: 
    119                         statistics["contributions"][year] += cat._statistics["contributions"][year] 
     115                        stats["events"][year] = scat._statistics["events"][year] 
     116                for year in scat._statistics["contributions"]: 
     117                    if year in stats["contributions"]: 
     118                        stats["contributions"][year] += scat._statistics["contributions"][year] 
    120119                    else: 
    121                         statistics["contributions"][year] = cat._statistics["contributions"][year] 
    122                 statistics["resources"] += cat._statistics["resources"] 
     120                        stats["contributions"][year] = scat._statistics["contributions"][year] 
     121                stats["resources"] += scat._statistics["resources"] 
    123122 
    124123        elif len(cat.getConferenceList()) > 0: 
    125124            for event in cat.getConferenceList(): 
    126                 cls._processEvent(dbi, event, statistics) 
     125                cls._processEvent(dbi, event, stats) 
    127126 
    128         statistics["updated"] = nowutc() 
    129         cat._statistics = statistics 
     127        stats["updated"] = nowutc() 
     128        cat._statistics = stats 
    130129        cat._p_changed = 1 
    131         return statistics 
     130 
     131        dbi.commit() 
     132 
     133        if level == 1: 
     134            logger.info("%s : %s" % (cat.getId(), cat._statistics)) 
     135 
     136        return stats 
  • indico/modules/scheduler/tasks.py

    r078f40 r07abe7  
    326326        from MaKaC.statistics import CategoryStatistics 
    327327        CategoryStatistics.updateStatistics(self._cat, 
    328                                             self._v_logger) 
     328                                            self.getLogger()) 
    329329 
    330330 
Note: See TracChangeset for help on using the changeset viewer.