From 1b85823f9b8e5353904f63b3597f78d27afcca1b Mon Sep 17 00:00:00 2001 From: Eibriel Date: Fri, 10 Apr 2015 13:08:45 -0300 Subject: [PATCH] Adding tasks (WIP), inmproving populate_db script --- attract/application/__init__.py | 8 +-- attract/manage.py | 105 +++++++++++++++----------------- attract/settings.py | 4 ++ 3 files changed, 56 insertions(+), 61 deletions(-) diff --git a/attract/application/__init__.py b/attract/application/__init__.py index 5f276eec..a24a8cd6 100644 --- a/attract/application/__init__.py +++ b/attract/application/__init__.py @@ -44,6 +44,7 @@ def validate(token): else: message = "" valid = False + user = None return dict(valid=valid, message=message, user=user) @@ -135,11 +136,8 @@ class ValidateCustomFields(Validator): field, "Error validating properties") -"""def add_token(documents): - for document in documents: - document["token"] = (''.join(random.choice(string.ascii_uppercase) - for x in range(10)))""" +def post_item(entry, data): + post_internal(entry, data) app = Eve(validator=ValidateCustomFields, auth=MyTokenAuth) -# app.on_insert_tokens += add_token diff --git a/attract/manage.py b/attract/manage.py index 92cc0038..c1403f4b 100644 --- a/attract/manage.py +++ b/attract/manage.py @@ -1,4 +1,5 @@ from application import app +from application import post_item from flask.ext.script import Manager manager = Manager(app) @@ -26,9 +27,6 @@ def clear_db(): """Wipes the database """ from pymongo import MongoClient - from pymongo.errors import DuplicateKeyError - from bson import ObjectId - from datetime import datetime client = MongoClient() db = client.eve @@ -42,35 +40,8 @@ def clear_db(): def populate_db_test(): """Populate the db with sample data """ - from pymongo import MongoClient - from pymongo.errors import DuplicateKeyError - from bson import ObjectId - from datetime import datetime - - client = MongoClient() - db = client.eve - - default_user = { - "_id": ObjectId("550171c8135d3248e477f288"), - "_updated": datetime.now(), - "firstname": "admin", - "lastname": "admin", - "role": "admin", - "email": "admin@admin.com", - "_created": datetime.now(), - "_etag": "302236e27f51d2e26041ae9de49505d77332b260" - } - - default_token = { - "_id": ObjectId("5502f289135d3274cb658ba7"), - "username": "admin", - "token": "ANLGNSIEZJ", - "_etag": "1e96ed46b133b7ede5ce6ef0d6d4fc53edd9f2ba" - } shot_node_type = { - "_id": ObjectId("55016a52135d32466fc800be"), - "_updated": datetime.now(), "name": "shot", "description": "Shot Node Type, for shots", "dyn_schema": { @@ -106,15 +77,54 @@ def populate_db_test(): #}, } }, - "_created": datetime.now(), - "_etag": "0ea3c4f684a0cda85525184d5606c4f4ce6ac5f5" - } + } + + task_node_type = { + "name": "task", + "description": "Task Node Type, for tasks", + "dyn_schema": { + "status": { + "type": "string", + "allowed": [ + "todo", + "in-progress", + "done", + "cbb", + "final1", + "final2", + "review" + ], + "required": True, + }, + "owners": { + "type": "dict", + "schema": { + "users": { + "type": "list", + }, + "groups": { + "type": "list", + } + } + }, + "time": { + "type": "dict", + "schema": { + "start": { + "type": "datetime" + }, + "duration": { + "type": "integer" + }, + "chunks": { + "type": "list", + } + } + } + }, + } shot = { - "_id": ObjectId("55016a52135d32466fc800be"), - "_update": datetime.now(), - "_created": datetime.now(), - "_etag": "0ea3c4f684a0cda85525184d5606c4f4ce6ac5f5", "name": "01", "description": "A sheep tries to hang itself, but fails", "thumbnail": "/tmp/attrackt-thumbnail.png", @@ -132,25 +142,8 @@ def populate_db_test(): } } - try: - db.users.insert(default_user) - except DuplicateKeyError: - print ("default_user already exist") - - try: - db.node_types.insert(shot_node_type) - except DuplicateKeyError: - print ("shot_node_type already exist") - - try: - db.tokens.insert(default_token) - except DuplicateKeyError: - print ("default_token already exist") - - try: - db.nodes.insert(shot) - except DuplicateKeyError: - print ("shot already exist") + post_item('node_types', shot_node_type) + post_item('node_types', task_node_type) if __name__ == '__main__': diff --git a/attract/settings.py b/attract/settings.py index b02f97c6..e6467c12 100644 --- a/attract/settings.py +++ b/attract/settings.py @@ -73,6 +73,10 @@ nodes_schema = { # 'field': '_id', #}, }, + 'user': { + 'type': 'string', + 'required': True, + }, 'node_type': { 'type': 'objectid', 'required': True,