# HG changeset patch # User durandn # Date 1428593967 -7200 # Node ID 75170fe4d56b7fc167111d21c9d3cf50357541e2 # Parent a89f85dee0014a47870fa2664117b7b0f1a27e0d Started work on task management for submitting changes diff -r a89f85dee001 -r 75170fe4d56b src/catedit/__init__.py --- a/src/catedit/__init__.py Thu Apr 09 14:46:13 2015 +0200 +++ b/src/catedit/__init__.py Thu Apr 09 17:39:27 2015 +0200 @@ -14,6 +14,7 @@ from flask.ext.github import GitHub from flask.ext.cache import Cache from flask.ext.restful import Api +from celery import Celery from catedit.settings import AppSettings @@ -51,6 +52,11 @@ ) github = GitHub(app) +app.config['CELERY_BROKER_URL'] = 'sqla+sqlite:///celerydb.sqlite' + +celery = Celery(app.name, broker=app.config['CELERY_BROKER_URL']) +celery.conf.update(app.config) + @github.access_token_getter def token_getter(): """ diff -r a89f85dee001 -r 75170fe4d56b src/catedit/resources.py --- a/src/catedit/resources.py Thu Apr 09 14:46:13 2015 +0200 +++ b/src/catedit/resources.py Thu Apr 09 17:39:27 2015 +0200 @@ -9,6 +9,7 @@ from catedit import app, cache, github from catedit.models import Category, CategoryManager import catedit.persistence +from catedit.tasks import submit_changes from io import StringIO from flask import session @@ -97,30 +98,19 @@ args = cat_parser.parse_args() if cat_id is None: if cat_manager_instance.persistence.session_compliant is True: - logger.debug( - "Submitting - deleted categories are:" - + str( - session.get( + session["tasks"][repository].append( + submit_changes.delay( + deleted_cat_dict=session.get( "deleted_categories", {} - ).get(repository, {}) - ) + " and modified categories are:" - + str( - session.get( + ).get(repository, {}), + modified_cat_dict=session.get( "modified_categories", {} - ).get(repository, {}) + ).get(repository, {}), + message=args["commit_message"] ) ) - cat_manager_instance.save_changes( - deleted_cat_dict=session.get( - "deleted_categories", {} - ).get(repository, {}), - modified_cat_dict=session.get( - "modified_categories", {} - ).get(repository, {}), - message=args["commit_message"] - ) - session["deleted_categories"]["local"] = {} - session["modified_categories"]["local"] = {} + session["deleted_categories"][repository] = {} + session["modified_categories"][repository] = {} cache.clear() return 204 else: diff -r a89f85dee001 -r 75170fe4d56b src/catedit/tasks.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/catedit/tasks.py Thu Apr 09 17:39:27 2015 +0200 @@ -0,0 +1,27 @@ +from catedit import app, celery + +@celery.task +def submit_changes(self, modified_categories, deleted_categories, message): + with app.app_context(): + cat_manager_instance = CategoryManager( + getattr( + catedit.persistence, + app.config["PERSISTENCE_CONFIG"]["METHOD"] + )(repository=repository), + ) + + if cat_manager_instance.persistence.session_compliant is True: + logger.debug( + "Submitting - deleted categories are:" + + str( + modified_categories + ) + " and modified categories are:" + + str( + deleted_categories + ) + ) + cat_manager_instance.save_changes( + deleted_cat_dict=deleted_categories, + modified_cat_dict=modified_categories, + message=message + ) \ No newline at end of file diff -r a89f85dee001 -r 75170fe4d56b src/catedit/views/home.py --- a/src/catedit/views/home.py Thu Apr 09 14:46:13 2015 +0200 +++ b/src/catedit/views/home.py Thu Apr 09 17:39:27 2015 +0200 @@ -63,6 +63,10 @@ repo: {} for repo in app.config["PERSISTENCE_CONFIG"]["REPOSITORY_LIST"] } + session["tasks"] = { + repo: [] for repo + in app.config["PERSISTENCE_CONFIG"]["REPOSITORY_LIST"] + } try: session["user_login"] = github.get( diff -r a89f85dee001 -r 75170fe4d56b virtualenv/requirements.txt --- a/virtualenv/requirements.txt Thu Apr 09 14:46:13 2015 +0200 +++ b/virtualenv/requirements.txt Thu Apr 09 17:39:27 2015 +0200 @@ -1,21 +1,29 @@ +amqp==1.4.6 +aniso8601==0.90 +anyjson==0.3.3 +astroid==1.3.6 +billiard==3.3.0.19 +celery==3.1.17 Flask==0.10.1 Flask-Cache==0.13.1 Flask-RESTful==0.3.1 Flask-WTF==0.10.3 GitHub-Flask==2.0.0 -Jinja2==2.7.3 -MarkupSafe==0.23 -Unidecode==0.04.16 -WTForms==2.0.1 -Werkzeug==0.9.6 -aniso8601==0.90 isodate==0.5.1 itsdangerous==0.24 +Jinja2==2.7.3 +kombu==3.0.24 +logilab-common==0.63.2 +MarkupSafe==0.23 pep8==1.5.7 -pylint +pylint==1.4.3 pyparsing==2.0.3 python-slugify==0.1.0 -pytz==2014.10 +pytz==2015.2 rdflib==4.1.2 requests==2.5.0 six==1.8.0 +SQLAlchemy==0.9.9 +Unidecode==0.4.16 +Werkzeug==0.9.6 +WTForms==2.0.1