Exemplo n.º 1
0
    def action_delete(self, ids):
        try:
            query = tools.get_query_for_ids(self.get_query(), self.model, ids)

            if self.fast_mass_delete:
                count = query.delete(synchronize_session=False)
            else:
                count = 0

                for m in query.all():
                    if self.delete_model(m):
                        count += 1

            self.session.commit()

            flash(
                ngettext('Record was successfully deleted.',
                         '%(count)s records were successfully deleted.',
                         count,
                         count=count), 'success')
        except Exception as ex:
            if not self.handle_view_exception(ex):
                raise

            flash(
                gettext('Failed to delete records. %(error)s', error=str(ex)),
                'error')
Exemplo n.º 2
0
    def action_delete(self, ids):
        try:
            query = tools.get_query_for_ids(self.get_query(), self.model, ids)

            if self.fast_mass_delete:
                count = query.delete(synchronize_session=False)
            else:
                count = 0

                for m in query.all():
                    if self.delete_model(m):
                        count += 1

            self.session.commit()

            flash(
                ngettext(
                    "Record was successfully deleted.",
                    "%(count)s records were successfully deleted.",
                    count,
                    count=count,
                ),
                "success",
            )
        except Exception as ex:
            if not self.handle_view_exception(ex):
                raise

            flash(gettext("Failed to delete records. %(error)s", error=str(ex)), "error")
Exemplo n.º 3
0
 def action_unsign(self, ids):
     try:
         builds = get_query_for_ids(self.get_query(), self.model, ids).all()
         not_signed = []
         success = []
         failed = []
         for build in builds:
             filename = os.path.basename(build.path)
             with io.open(os.path.join(current_app.config['DATA_PATH'], build.path), 'rb+') as f:
                 spk = SPK(f)
                 if spk.signature is None:
                     not_signed.append(filename)
                     continue
                 try:
                     spk.unsign()
                     success.append(filename)
                 except Exception:
                     failed.append(filename)
         if failed:
             if len(failed) == 1:
                 flash('Failed to unsign build %s' % failed[0], 'error')
             else:
                 flash('Failed to unsign %d builds: %s' % (len(failed), ', '.join(failed)), 'error')
         if not_signed:
             if len(not_signed) == 1:
                 flash('Build %s not signed' % not_signed[0], 'info')
             else:
                 flash('%d builds not signed: %s' % (len(not_signed), ', '.join(not_signed)), 'info')
         if success:
             if len(success) == 1:
                 flash('Build %s successfully unsigned' % success[0])
             else:
                 flash('Successfully unsigned %d builds: %s' % (len(success), ', '.join(success)))
     except Exception as e:  # pragma: no cover
         flash('Failed to unsign builds. %s' % str(e), 'error')
Exemplo n.º 4
0
    def handle_action(self, return_view=None):
        action = request.form.get('action')
        ids = request.form.getlist('rowid')
        page, sort, sort_desc, search, filters = self._get_action_extra_args()
        select_all = request.form.get('select-all', 0, type=int)
        select_page = request.form.get('select-page', 0, type=int)

        if select_all:
            count, query = self.get_list(None, sort, sort_desc, search, filters, False)
        elif select_page:
            count, query = self.get_list(page, sort, sort_desc, search, filters, False)
        else:
            query = get_query_for_ids(self.get_query(), self.model, ids)

        handler = self._actions_data.get(action)

        if handler and self.is_action_allowed(action):
            response = handler[0](ids, query)

            if response is not None:
                return response

        if not return_view:
            url = url_for('.' + self._default_view)
        else:
            url = url_for('.' + return_view)

        return redirect(url)
Exemplo n.º 5
0
 def action_deactivate(self, ids):
     try:
         users = get_query_for_ids(self.get_query(), self.model, ids).all()
         for user in users:
             user.active = False
         self.session.commit()
         flash('User was successfully deactivated.' if len(users) == 1 else
               '%d users were successfully deactivated.' % len(users))
     except Exception as e:  # pragma: no cover
         self.session.rollback()
         flash('Failed to deactivate users. %s' % str(e), 'error')
Exemplo n.º 6
0
 def action_deactivate(self, ids):
     try:
         builds = get_query_for_ids(self.get_query(), self.model, ids).all()
         for build in builds:
             build.active = False
         self.session.commit()
         flash('Build was successfully deactivated.' if len(builds) == 1 else
               '%d builds were successfully deactivated.' % len(builds))
     except Exception as e:  # pragma: no cover
         self.session.rollback()
         flash('Failed to deactivate builds. %s' % str(e), 'error')
Exemplo n.º 7
0
 def action_activate(self, ids):
     try:
         users = get_query_for_ids(self.get_query(), self.model, ids).all()
         for user in users:
             user.active = True
         self.session.commit()
         flash("User was successfully activated." if len(users) ==
               1 else "%d users were successfully activated." % len(users))
     except Exception as e:  # pragma: no cover
         self.session.rollback()
         flash("Failed to activate users. %s" % str(e), "error")
Exemplo n.º 8
0
 def action_deactivate(self, ids):
     try:
         versions = get_query_for_ids(self.get_query(), self.model, ids).all()
         for version in versions:
             for build in version.builds:
                 build.active = False
         self.session.commit()
         flash('Builds on version were successfully deactivated.' if len(versions) == 1 else
               'Builds have been successfully deactivated for %d versions.' % len(versions))
     except Exception as e:  # pragma: no cover
         self.session.rollback()
         flash('Failed to deactivate versions\' builds. %s' % str(e), 'error')
Exemplo n.º 9
0
 def action_activate(self, ids):
     try:
         builds = get_query_for_ids(self.get_query(), self.model, ids).all()
         for build in builds:
             build.active = True
         self.session.commit()
         flash("Build was successfully activated." if len(builds) ==
               1 else "%d builds were successfully activated." %
               len(builds))
     except Exception as e:  # pragma: no cover
         self.session.rollback()
         flash("Failed to activate builds. %s" % str(e), "error")
Exemplo n.º 10
0
    def action_finish(self, ids):
        try:
            query = tools.get_query_for_ids(self.get_query(), self.model, ids)
            query.update({'has_finished': '1'}, synchronize_session=False)
            self.session.commit()

            flash('success')
        except Exception as ex:
            if not self.handle_view_exception(ex):
                raise

            flash('error')
Exemplo n.º 11
0
 def action_sign(self, ids):
     try:
         versions = get_query_for_ids(self.get_query(), self.model,
                                      ids).all()
         already_signed = []
         success = []
         failed = []
         for version in versions:
             for build in version.builds:
                 filename = os.path.basename(build.path)
                 with io.open(
                         os.path.join(current_app.config["DATA_PATH"],
                                      build.path), "rb+") as f:
                     spk = SPK(f)
                     if spk.signature is not None:
                         already_signed.append(filename)
                         continue
                     try:
                         spk.sign(
                             current_app.config["GNUPG_TIMESTAMP_URL"],
                             current_app.config["GNUPG_PATH"],
                         )
                         success.append(filename)
                     except Exception:
                         failed.append(filename)
             if failed:
                 if len(failed) == 1:
                     flash("Failed to sign build %s" % failed[0], "error")
                 else:
                     flash(
                         "Failed to sign %d builds: %s" %
                         (len(failed), ", ".join(failed)),
                         "error",
                     )
             if already_signed:
                 if len(already_signed) == 1:
                     flash("Build %s already signed" % already_signed[0],
                           "info")
                 else:
                     flash(
                         "%d builds already signed: %s" %
                         (len(already_signed), ", ".join(already_signed)),
                         "info",
                     )
             if success:
                 if len(success) == 1:
                     flash("Build %s successfully signed" % success[0])
                 else:
                     flash("Successfully signed %d builds: %s" %
                           (len(success), ", ".join(success)))
     except Exception as e:  # pragma: no cover
         flash("Failed to sign builds. %s" % str(e), "error")
Exemplo n.º 12
0
    def action_resuccess(self, ids):
        try:
            query = tools.get_query_for_ids(self.get_query(), self.model, ids)
            count = query.update({self.model.status, 'success'}, synchronize_session=False)

            flash(ngettext('jobs was successfully success.',
                           '%(count)s records were successfully success.',
                           count,
                           count=count), 'success')
        except Exception as ex:
            if not self.handle_view_exception(ex):
                raise

            flash(gettext('Failed to rerun records. %(error)s', error=str(ex)), 'error')
Exemplo n.º 13
0
 def action_activate(self, ids):
     try:
         versions = get_query_for_ids(self.get_query(), self.model,
                                      ids).all()
         for version in versions:
             for build in version.builds:
                 build.active = True
         self.session.commit()
         flash("Builds on version were successfully activated."
               if len(versions) == 1 else
               "Builds have been successfully activated for %d versions." %
               len(versions))
     except Exception as e:  # pragma: no cover
         self.session.rollback()
         flash("Failed to activate versions' builds. %s" % str(e), "error")
Exemplo n.º 14
0
    def action_resuccess(self, ids):
        try:
            query = tools.get_query_for_ids(self.get_query(), self.model, ids)
            count = query.update({self.model.status, 'success'},
                                 synchronize_session=False)

            flash(
                ngettext('jobs was successfully success.',
                         '%(count)s records were successfully success.',
                         count,
                         count=count), 'success')
        except Exception as ex:
            if not self.handle_view_exception(ex):
                raise

            flash(gettext('Failed to rerun records. %(error)s', error=str(ex)),
                  'error')
Exemplo n.º 15
0
    def action_confirm(self, ids):
        count = 0

        query = get_query_for_ids(self.get_query(), self.model, ids)

        def confirm(project):
            project.status = "True"
            self.session.commit()
            return True

        for project in query.all():
            if confirm(project):
                count += 1
        self.session.commit()

        flash(ngettext('Record was successfully confirmed.',
                       '%(count)s records were successfully confirmed.', count, count=count))
Exemplo n.º 16
0
    def action_update(self, ids):
        count = 0

        query = get_query_for_ids(self.get_query(), self.model, ids)

        def update(project):
            update_single_project(project)
            self.session.commit()
            return True

        for project in query.all():
            if update_single_project(project):
                count += 1
        self.session.commit()

        flash(ngettext('Record was successfully updated.',
                       '%(count)s records were successfully updated.', count, count=count))
Exemplo n.º 17
0
    def action_dryrun(self, ids):
        try:
            query = tools.get_query_for_ids(self.get_query(), self.model, ids)
            count = 0
            for job in query:
                msg = models.Admin().rerun_task(job.task_id, job.etl_day,
                                                up_and_down=False,
                                                run_up=False,
                                                run_down=False,
                                                force=True)
                count += 1

            flash(ngettext('jobs was successfully dryrun.',
                           '%(count)s records were successfully dryrun.',
                           count,
                           count=count), 'success')
        except Exception as ex:
            if not self.handle_view_exception(ex):
                raise

            flash(gettext('Failed to rerun records. %(error)s', error=str(ex)), 'error')
Exemplo n.º 18
0
    def action_dryrun(self, ids):
        try:
            query = tools.get_query_for_ids(self.get_query(), self.model, ids)
            count = 0
            for job in query:
                msg = models.Admin().rerun_task(job.task_id,
                                                job.etl_day,
                                                up_and_down=False,
                                                run_up=False,
                                                run_down=False,
                                                force=True)
                count += 1

            flash(
                ngettext('jobs was successfully dryrun.',
                         '%(count)s records were successfully dryrun.',
                         count,
                         count=count), 'success')
        except Exception as ex:
            if not self.handle_view_exception(ex):
                raise

            flash(gettext('Failed to rerun records. %(error)s', error=str(ex)),
                  'error')
Exemplo n.º 19
0
 def action_sign(self, ids):
     try:
         versions = get_query_for_ids(self.get_query(), self.model, ids).all()
         already_signed = []
         success = []
         failed = []
         for version in versions:
             for build in version.builds:
                 filename = os.path.basename(build.path)
                 with io.open(os.path.join(current_app.config['DATA_PATH'], build.path), 'rb+') as f:
                     spk = SPK(f)
                     if spk.signature is not None:
                         already_signed.append(filename)
                         continue
                     try:
                         spk.sign(current_app.config['GNUPG_TIMESTAMP_URL'], current_app.config['GNUPG_PATH'])
                         success.append(filename)
                     except Exception:
                         failed.append(filename)
             if failed:
                 if len(failed) == 1:
                     flash('Failed to sign build %s' % failed[0], 'error')
                 else:
                     flash('Failed to sign %d builds: %s' % (len(failed), ', '.join(failed)), 'error')
             if already_signed:
                 if len(already_signed) == 1:
                     flash('Build %s already signed' % already_signed[0], 'info')
                 else:
                     flash('%d builds already signed: %s' % (len(already_signed), ', '.join(already_signed)), 'info')
             if success:
                 if len(success) == 1:
                     flash('Build %s successfully signed' % success[0])
                 else:
                     flash('Successfully signed %d builds: %s' % (len(success), ', '.join(success)))
     except Exception as e:  # pragma: no cover
         flash('Failed to sign builds. %s' % str(e), 'error')