Example #1
0
    def _comment_submit(self, packagename):
        """
        Comment submission.

        ``packagename``
            Package name to look at.
        """
        log.debug("Comment form validation successful")

        if 'user_id' not in session:
            log.debug('Requires authentication')
            session['path_before_login'] = request.path_info
            session.save()
            redirect(url('login'))

        package = self._get_package(packagename)

        status = constants.PACKAGE_COMMENT_STATUS_NOT_UPLOADED

        if self.form_result['status']:
            status = constants.PACKAGE_COMMENT_STATUS_UPLOADED

        comment = PackageComment(
            user_id=session['user_id'],
            package_version_id=self.form_result['package_version'],
            text=self.form_result['text'],
            time=datetime.now(),
            outcome=self.form_result['outcome'],
            status=status)

        meta.session.add(comment)
        meta.session.commit()

        subscribers = meta.session.query(PackageSubscription).filter_by(
            package=packagename).filter(PackageSubscription.level <= constants.
                                        SUBSCRIPTION_LEVEL_COMMENTS).all()

        user = meta.session.query(User).filter_by(id=session['user_id']).one()
        if len(subscribers) > 0:

            email = Email('comment_posted')
            email.send([s.user.email for s in subscribers],
                       package=packagename,
                       comment=self.form_result['text'],
                       user=user)

        version = package = meta.session.query(PackageVersion).filter_by(
            id=self.form_result['package_version']).first()

        data = version.publish_data
        data['author_email'] = user.email
        data['author_name'] = user.name
        data['content'] = comment.text
        data['outcome'] = comment.outcome

        publish(topic="package.comment", msg=data)

        redirect(url('package', packagename=packagename))
Example #2
0
    def _comment_submit(self, packagename):
        """
        Comment submission.

        ``packagename``
            Package name to look at.
        """
        log.debug("Comment form validation successful")

        if 'user_id' not in session:
            log.debug('Requires authentication')
            session['path_before_login'] = request.path_info
            session.save()
            redirect(url('login'))

        package = self._get_package(packagename)

        status = constants.PACKAGE_COMMENT_STATUS_NOT_UPLOADED

        if self.form_result['status']:
            status = constants.PACKAGE_COMMENT_STATUS_UPLOADED

        comment = PackageComment(user_id=session['user_id'],
            package_version_id=self.form_result['package_version'],
            text=self.form_result['text'],
            time=datetime.now(),
            outcome=self.form_result['outcome'],
            status=status)

        meta.session.add(comment)
        meta.session.commit()

        subscribers = meta.session.query(PackageSubscription).filter_by(
            package=packagename).filter(
            PackageSubscription.level <= constants.SUBSCRIPTION_LEVEL_COMMENTS).all()

        user = meta.session.query(User).filter_by(id=session['user_id']).one()
        if len(subscribers) > 0:

            email = Email('comment_posted')
            email.send([s.user.email for s in subscribers], package=packagename,
                comment=self.form_result['text'], user=user)

        version = package = meta.session.query(PackageVersion).filter_by(id=self.form_result['package_version']).first()

        data = version.publish_data
        data['author_email'] = user.email
        data['author_name'] = user.name
        data['content'] = comment.text
        data['outcome'] = comment.outcome

        publish(topic="package.comment", msg=data)

        redirect(url('package', packagename=packagename))