Example #1
0
 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)
Example #2
0
    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))
Example #3
0
    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))
Example #4
0
    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))