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))
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))