def warn_old_project_owners(): """E-mail the project owners not updated in the last 3 months.""" from pybossa.core import mail, project_repo from pybossa.cache.projects import clean from flask.ext.mail import Message projects = get_non_updated_projects() with mail.connect() as conn: for project in projects: subject = ('Your %s project: %s has been inactive' % (current_app.config.get('BRAND'), project.name)) body = render_template('/account/email/inactive_project.md', project=project) html = render_template('/account/email/inactive_project.html', project=project) msg = Message(recipients=[project.owner.email_addr], subject=subject, body=body, html=html) conn.send(msg) project.contacted = True project.published = False clean(project.id) project_repo.update(project) return True
def delete(self, project): self._validate_can_be('deleted', project) project = self.db.session.query(Project).filter(Project.id==project.id).first() self.db.session.delete(project) self.db.session.commit() cached_projects.clean(project.id) self._delete_zip_files_from_store(project)
def delete_task_by_id(self, project_id, task_id): args = dict(project_id=project_id, task_id=task_id) self.db.session.execute(text(''' DELETE FROM result WHERE project_id=:project_id AND task_id=:task_id;'''), args) self.db.session.execute(text(''' DELETE FROM task_run WHERE project_id=:project_id AND task_id=:task_id;'''), args) self.db.session.execute(text(''' DELETE FROM task WHERE project_id=:project_id AND id=:task_id;'''), args) self.db.session.commit() cached_projects.clean(project_id)