コード例 #1
0
ファイル: rate.py プロジェクト: Zojax/zojax.rating
 def getRate(self):
     manager = IRatingsManager(self.context)
     rate = manager.getRating(
         OVERALL_RATING_DEFINITION_NAME, self.request.principal.id)
     if rate is None:
         return u'--'
     else:
         return rate.value
コード例 #2
0
ファイル: rate.py プロジェクト: Zojax/zojax.rating
    def setRate(self, value):
        manager = IRatingsManager(self.context)
        if value == u'--':
            manager.remove(
                OVERALL_RATING_DEFINITION_NAME, self.request.principal.id)
        else:
            manager.rate(
                OVERALL_RATING_DEFINITION_NAME, value, self.request.principal.id)

        # Invoke ObjectModifedEvent to reindex the rated object in catalog
        event.notify(ObjectModifiedEvent(self.context))
コード例 #3
0
ファイル: average.py プロジェクト: Zojax/zojax.rating
    def average(self, defn = overallRatingDefinition):
        manager = IRatingsManager(self.context)

        total = 0.0
        rates = manager.getRatings(OVERALL_RATING_DEFINITION_NAME)
        if not rates:
            return None

        for rate in rates:
            total += defn.scoreSystem.getNumericalValue(rate.value)

        average = total / len(rates)
        return average
コード例 #4
0
def evolve(context):
    """Add tzinfo to timestamp of ratings"""
    for ratable in findObjectsProviding(getRootFolder(context), IRatable):
        manager = IRatingsManager(ratable)
        for d in manager._storage.values():
            for rating in d.values():
                if rating._timestamp.tzinfo is None:
                    rating._timestamp = rating._timestamp.replace(tzinfo=UTC)