Beispiel #1
0
 def _getMessage(self, action):
     if (action == 'like'):
         return _(u"You liked this. Thanks for the feedback!")
     elif (action == 'dislike'):
         return _(u"You dislike this. Thanks for the feedback!")
     elif (action == 'undo'):
         return _(u"Your vote has been removed.")
Beispiel #2
0
 def _getMessage(self, action):
     if (action == 'like'):
         return _(u"You liked this. Thanks for the feedback!")
     elif (action == 'dislike'):
         return _(u"You dislike this. Thanks for the feedback!")
     elif (action == 'undo'):
         return _(u"Your vote has been removed.")
Beispiel #3
0
    def __call__(self, REQUEST, RESPONSE):
        registry = getUtility(IRegistry)
        anonuid = None
        anonymous_voting = registry.get('cioppino.twothumbs.anonymousvoting', False)
        portal_state = getMultiAdapter((self.context, self.request),
                                       name='plone_portal_state')

        if portal_state.anonymous():
            if not anonymous_voting:
                return RESPONSE.redirect('%s/login?came_from=%s' %
                                         (portal_state.portal_url(),
                                          REQUEST['HTTP_REFERER'])
                                         )
            else:
                anonuid = self.request.cookies.get(COOKIENAME, None)
                if anonuid is None:
                    anonuid = str(uuid4())
                    RESPONSE.setCookie(COOKIENAME, anonuid)

        form = self.request.form
        action = None
        if form.get('form.lovinit', False):
            action = rate.loveIt(self.context, userid=anonuid)
        elif form.get('form.hatedit', False):
            action = rate.hateIt(self.context, userid=anonuid)
        else:
            return _(u"We don't like ambiguity around here. Check yo self "
                     "before you wreck yo self.")

        if not form.get('ajax', False):
            return RESPONSE.redirect(REQUEST['HTTP_REFERER'])
        else:
            tally = rate.getTally(self.context)
            tally['action'] = action

            # Create handy translate function
            translate = self._get_translator()
            ltool = getToolByName(self, 'portal_languages')
            target_language = ltool.getPreferredLanguage()

            tally['msg'] = translate(
                self._getMessage(action),
                target_language=target_language
            )
            tally['close'] = translate(
                _(u"Close"),
                target_language=target_language
            )

            RESPONSE.setHeader('Content-Type',
                               'application/json; charset=utf-8')
            response_json = json.dumps(tally)
            RESPONSE.setHeader('content-length', len(response_json))
            return response_json
Beispiel #4
0
    def __call__(self, REQUEST, RESPONSE):
        registry = getUtility(IRegistry)
        anonuid = None
        anonymous_voting = registry.get('cioppino.twothumbs.anonymousvoting',
                                        False)
        portal_state = getMultiAdapter((self.context, self.request),
                                       name='plone_portal_state')

        if portal_state.anonymous():
            if not anonymous_voting:
                return RESPONSE.redirect(
                    '%s/login?came_from=%s' %
                    (portal_state.portal_url(), REQUEST['HTTP_REFERER']))
            else:
                anonuid = self.request.cookies.get(COOKIENAME, None)
                if anonuid is None:
                    anonuid = str(uuid4())
                    RESPONSE.setCookie(COOKIENAME, anonuid)

        form = self.request.form
        action = None
        if form.get('form.lovinit', False):
            action = rate.loveIt(self.context, userid=anonuid)
        elif form.get('form.hatedit', False):
            action = rate.hateIt(self.context, userid=anonuid)
        else:
            return _(u"We don't like ambiguity around here. Check yo self "
                     "before you wreck yo self.")

        if not form.get('ajax', False):
            return RESPONSE.redirect(REQUEST['HTTP_REFERER'])
        else:
            tally = rate.getTally(self.context)
            tally['action'] = action

            # Create handy translate function
            translate = self._get_translator()
            ltool = getToolByName(self, 'portal_languages')
            target_language = ltool.getPreferredLanguage()

            tally['msg'] = translate(self._getMessage(action),
                                     target_language=target_language)
            tally['close'] = translate(_(u"Close"),
                                       target_language=target_language)

            RESPONSE.setHeader('Content-Type',
                               'application/json; charset=utf-8')
            response_json = json.dumps(tally)
            RESPONSE.setHeader('content-length', len(response_json))
            return response_json
Beispiel #5
0
    def __call__(self, REQUEST, RESPONSE):

        # First check if the user is allowed to rate
        portal_state = getMultiAdapter((self.context, self.request),
                                       name='plone_portal_state')
        if portal_state.anonymous():
            return RESPONSE.redirect('%s/login?came_from=%s' % (portal_state.portal_url(), REQUEST['HTTP_REFERER']))


        form = self.request.form
        action = None
        if form.get('form.lovinit', False):
            action = rate.loveIt(self.context)
        elif form.get('form.hatedit', False):
            action = rate.hateIt(self.context)
        else:
            return _(u"We don't like ambiguity around here. Check yo self before you wreck yo self.")

        if not form.get('ajax', False):
            return RESPONSE.redirect(REQUEST['HTTP_REFERER'])
        else:
            tally = rate.getTally(self.context)
            tally['action'] = action

            # Create handy translate function
            td = queryUtility(ITranslationDomain, name='cioppino.twothumbs')
            if td:
                tx = td.translate
            else:
                # Workaround for non-registered translation domain to prevent breaking
                def tx(msgid, target_language=None):
                    return msgid

            ltool = getToolByName(self, 'portal_languages')
            target_language = ltool.getPreferredLanguage()

            if(action=='like'):
                tally['msg'] = tx(_(u"You liked this. Thanks for the feedback!"), target_language=target_language)
            elif(action=='dislike'):
                tally['msg'] = tx(_(u"You dislike this. Thanks for the feedback!"), target_language=target_language)
            elif(action=='undo'):
                tally['msg'] = tx(_(u"Your vote has been removed."), target_language=target_language)

            tally['close'] = tx(_(u"Close"), target_language=target_language)
            
            RESPONSE.setHeader('Content-Type', 'application/json; charset=utf-8')
            response_json = json.dumps(tally)
            RESPONSE.setHeader('content-length', len(response_json))
            return response_json
Beispiel #6
0
    def __call__(self, REQUEST, RESPONSE):
        form = self.request.form
        if form.get('form.lovinit', False):
            rate.loveIt(self.context)
        elif form.get('form.hatedit', False):
            rate.hateIt(self.context)
        else:
            return _(u"We don't like ambiguity around here. Check yo self before you wreck yo self.")

        tally = rate.getTally(self.context)
        RESPONSE.setHeader('Content-Type', 'application/javascript')
        return json.dumps(tally)
Beispiel #7
0
    def __call__(self, REQUEST, RESPONSE):
        form = self.request.form
        if form.get('form.lovinit', False):
            rate.loveIt(self.context)
            # vipod: additionally re-index a few more indexes
            self.context.reindexObject(idxs=['avg_ratings',
                'total_down_ratings'])
        elif form.get('form.hatedit', False):
            rate.hateIt(self.context)
            # vipod: additionally re-index a few more indexes
            self.context.reindexObject(idxs=['avg_ratings',
                'total_down_ratings'])
        else:
            return _(u"We don't like ambiguity around here. "
                     "Check yo self before you wreck yo self.")

        tally = rate.getTally(self.context)
        RESPONSE.setHeader('Content-Type', 'application/javascript')
        return json.dumps(tally)
Beispiel #8
0
 def getTwoThumbsAlt(self):
     if self.canRate():
         return _(u'I like this')
     return _(u'Please log in to rate this')
 def doIt(self):
     action = rate.hateIt(self.context)
     if action == "dislike":
         self.message = _(u"You dislike this. Thanks for the feedback!")
     else:
         self.message = _(u"Your vote has been removed.")