Example #1
0
    def __iter__(self):
        for item in self.previous:
            if item.get('_ratings', False):
                obj = self.context.unrestrictedTraverse(str(item['_path']).lstrip('/'), None)
                if obj is None:
                    # path doesn't exist
                    yield item; continue
                yays = 'cioppino.twothumbs.yays'
                nays = 'cioppino.twothumbs.nays'
                rate.setupAnnotations(obj)
                annotations = IAnnotations(obj)
                annotations[yays] = item['_ratings']['ups']
                annotations[nays] = item['_ratings']['downs']

            yield item
Example #2
0
    def send_request(self, data):
        user = self.create_user(data)
        if data["vote"] == "FOR":
            for project in data["project"]:
                context = api.content.find(UID=project)[0].getObject()
                setupAnnotations(context)
                loveIt(context, userid=user.id)
        else:
            for project in data["project"]:
                context = api.content.find(UID=project)[0].getObject()
                setupAnnotations(context)
                hateIt(context, userid=user.id)

        self.request.response.redirect("{0}/@@vote_encoding".format(
            self.context.absolute_url()))
Example #3
0
def add_project(
    container,
    project_id,
    title,
    project_theme,
    project_body,
    image_source,
    project_author,
    project_like,
    project_unlike,
    project_status,
):
    img_extensions = ("jpg", "png", "gif")
    with api.env.adopt_user(username="******"):
        project = api.content.create(
            type="Project",
            title=title,
            project_theme=project_theme,
            body=u"<br>".join(project_body.decode("utf8").splitlines()),
            container=container,
            original_author=project_author,
            original_id=project_id,
        )
        for ext in img_extensions:
            filename = "{0}.{1}".format(project_id, ext)
            img_path = os.path.join(image_source, filename)
            if os.path.exists(img_path):
                add_image_from_file(project, filename, image_source)
                break

    rate.setupAnnotations(project)
    if project_like:
        for x in range(0, int(project_like)):
            rate.loveIt(project, "userimportp" + str(x))
    if project_unlike:
        for x in range(0, int(project_unlike)):
            rate.hateIt(project, "userimportn" + str(x))

    with api.env.adopt_user(username="******"):
        if project_status in ["selected", "rejected"]:
            api.content.transition(obj=project, transition="deposit")
            api.content.transition(obj=project, transition="to_be_analysed")
            api.content.transition(obj=project, transition="vote")
            api.content.transition(obj=project, transition="vote_analysis")
            if project_status == "selected":
                api.content.transition(obj=project, transition="accept")
            else:
                api.content.transition(obj=project, transition="reject")
Example #4
0
def add_project(
    container,
    project_id,
    title,
    project_theme,
    project_body,
    image_source,
    project_author,
    project_like,
    project_unlike,
    project_status,
):
    img_extensions = ("jpg", "png", "gif")
    with api.env.adopt_user(username="******"):
        project = api.content.create(
            type="Project",
            title=title,
            project_theme=project_theme,
            body=u"<br>".join(project_body.decode("utf8").splitlines()),
            container=container,
            original_author=project_author,
            original_id=project_id,
        )
        for ext in img_extensions:
            filename = "{0}.{1}".format(project_id, ext)
            img_path = os.path.join(image_source, filename)
            if os.path.exists(img_path):
                add_image_from_file(project, filename, image_source)
                break

    rate.setupAnnotations(project)
    if project_like:
        for x in range(0, int(project_like)):
            rate.loveIt(project, "userimportp" + str(x))
    if project_unlike:
        for x in range(0, int(project_unlike)):
            rate.hateIt(project, "userimportn" + str(x))

    with api.env.adopt_user(username="******"):
        if project_status in ["selected", "rejected"]:
            api.content.transition(obj=project, transition="deposit")
            api.content.transition(obj=project, transition="to_be_analysed")
            api.content.transition(obj=project, transition="vote")
            api.content.transition(obj=project, transition="vote_analysis")
            if project_status == "selected":
                api.content.transition(obj=project, transition="accept")
            else:
                api.content.transition(obj=project, transition="reject")
    def migrate_ratings(self):
        """
        contentratings and twothumbs both use annotations. Just want to move
        one to another. Here we say anything >= 3 rating is a thumbs up
        """

        from cioppino.twothumbs import rate as thumbrate

        transaction.begin()
        item = self.obj
        annotations = IAnnotations(item)
        if annotations:
            if 'contentratings.userrating.psc_stars' in annotations:
                ratings = annotations[
                    'contentratings.userrating.psc_stars'].all_user_ratings()
                annotations = thumbrate.setupAnnotations(item)
                for rating in ratings:

                    if rating >= 3.0:
                        thumbrate.loveIt(item, rating.userid)
                    else:
                        thumbrate.hateIt(item, rating.userid)

        # we need to reindex th object anyways
        item.reindexObject()
        transaction.commit()
    def migrate_ratings(self):

        """
        contentratings and twothumbs both use annotations. Just want to move
        one to another. Here we say anything >= 3 rating is a thumbs up
        """

        from cioppino.twothumbs import rate as thumbrate

        transaction.begin()
        item = self.obj
        annotations = IAnnotations(item)
        if annotations:
            if 'contentratings.userrating.psc_stars' in annotations:
                ratings = annotations['contentratings.userrating.psc_stars'].all_user_ratings()
                annotations = thumbrate.setupAnnotations(item)
                for rating in ratings:

                    if rating >= 3.0:
                        thumbrate.loveIt(item, rating.userid)
                    else:
                        thumbrate.hateIt(item, rating.userid)

        # we need to reindex th object anyways
        item.reindexObject()
        transaction.commit()
Example #7
0
    def __iter__(self):
        for item in self.previous:
            if item.get("_ratings", False):
                obj = self.context.unrestrictedTraverse(
                    str(item["_path"]).lstrip("/"), None)
                if obj is None:
                    # path doesn't exist
                    yield item
                    continue
                yays = "cioppino.twothumbs.yays"
                nays = "cioppino.twothumbs.nays"
                rate.setupAnnotations(obj)
                annotations = IAnnotations(obj)
                annotations[yays] = item["_ratings"]["ups"]
                annotations[nays] = item["_ratings"]["downs"]

            yield item
Example #8
0
 def __init__(self, context, request):
     self.context = context
     self.request = request
     self.annotations = rate.setupAnnotations(self.context)
Example #9
0
def contextThumbs(context, event):
    if not ILoveThumbsDontYou.providedBy(context):
        alsoProvides(context, ILoveThumbsDontYou)
        rate.setupAnnotations(context)
        rate.hateIt(context)
        context.reindexObject()
Example #10
0
 def __init__(self, context, request):
     self.context = context
     self.request = request
     self.annotations = rate.setupAnnotations(self.context)
 def update(self):
     rate.setupAnnotations(self.context)
     if self.statusmessage is None:
         self.statusmessage = IStatusMessage(self.request)