def _details(self): """ Handles a user submitting the details form. """ log.debug('Validating details form') try: fields = form.validate(DetailsForm, user_id=self.user.id) except Exception, e: log.error('Failed validation') return form.htmlfill(self.index(get=True), e)
def subscribe(self, packagename): """ Package subscription. ``packagename`` Package name to look at. """ 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) query = meta.session.query(PackageSubscription).filter_by( package=packagename).filter_by(user_id=session['user_id']) subscription = query.first() validation = False if request.method == 'POST': # The form has been submitted. try: fields = form.validate(PackageSubscribeForm, user_id=session['user_id']) except Exception, e: log.error('Failed validation') validation = e if not validation: if subscription is None: # There is no previous subscription. if fields['level'] != -1: log.debug('Creating new subscription on %s' % packagename) subscription = PackageSubscription( package=packagename, user_id=session['user_id'], level=fields['level']) meta.session.add(subscription) else: # There is a previous subscription. if fields['level'] != -1: log.debug('Changing previous subscription on %s' % packagename) subscription.level = fields['level'] else: log.debug('Deleting previous subscription on %s' % packagename) meta.session.delete(subscription) meta.session.commit() redirect(url('package', packagename=packagename))
def subscribe(self, packagename): """ Package subscription. ``packagename`` Package name to look at. """ 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) query = ( meta.session.query(PackageSubscription).filter_by(package=packagename).filter_by(user_id=session["user_id"]) ) subscription = query.first() validation = False if request.method == "POST": # The form has been submitted. try: fields = form.validate(PackageSubscribeForm, user_id=session["user_id"]) except Exception, e: log.error("Failed validation") validation = e if not validation: if subscription is None: # There is no previous subscription. if fields["level"] != -1: log.debug("Creating new subscription on %s" % packagename) subscription = PackageSubscription( package=packagename, user_id=session["user_id"], level=fields["level"] ) meta.session.add(subscription) else: # There is a previous subscription. if fields["level"] != -1: log.debug("Changing previous subscription on %s" % packagename) subscription.level = fields["level"] else: log.debug("Deleting previous subscription on %s" % packagename) meta.session.delete(subscription) meta.session.commit() redirect(url("package", packagename=packagename))