From 5c5671f3c3353f6adc1ce5d9cab8f9f4de5a4e05 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 23 Oct 2013 16:00:40 -0500 Subject: Adding new collections works --- wqflask/wqflask/collect.py | 14 ++++++++-- wqflask/wqflask/model.py | 65 +++++++++------------------------------------- 2 files changed, 24 insertions(+), 55 deletions(-) (limited to 'wqflask') diff --git a/wqflask/wqflask/collect.py b/wqflask/wqflask/collect.py index 4ec37014..f61ea3dc 100644 --- a/wqflask/wqflask/collect.py +++ b/wqflask/wqflask/collect.py @@ -51,7 +51,10 @@ def collections_add(): @app.route("/collections/new") def collections_new(): - new_collection = request.args['new_collection'] + uc = model.UserCollection() + uc.name = request.args['new_collection'] + print("user_session:", g.user_session.__dict__) + uc.user = g.user_session.record['user_id'] unprocessed_traits = request.args['traits'] print("unprocessed_traits are:", unprocessed_traits) unprocessed_traits = unprocessed_traits.split(",") @@ -64,5 +67,12 @@ def collections_new(): assert hmac==user_manager.actual_hmac_creation(data), "Data tampering?" traits.add(str(data)) + uc.members = json.dumps(list(traits)) print("traits are:", traits) - return "Created: " + new_collection + + db_session.add(uc) + db_session.commit() + + + + return "Created: " + uc.name diff --git a/wqflask/wqflask/model.py b/wqflask/wqflask/model.py index ca1364d7..c89dc80a 100644 --- a/wqflask/wqflask/model.py +++ b/wqflask/wqflask/model.py @@ -7,10 +7,6 @@ import simplejson as json from flask import request from flask.ext.sqlalchemy import SQLAlchemy -#from flask.ext.security import Security, SQLAlchemyUserDatastore, UserMixin, RoleMixin - -#from flask_security.forms import TextField -#from flask_security.forms import RegisterForm from wqflask import app @@ -19,33 +15,7 @@ from sqlalchemy.orm import relationship, backref from wqflask.database import Base, init_db -# Create database connection object -#db = SQLAlchemy(app) - - -# Is this right? -Sam -#from sqlalchemy.ext.declarative import declarative_base -#Base = declarative_base() - -#@classmethod -#def get(cls, key): -# """Convenience get method using the primary key -# -# If record doesn't exist, returns None -# -# Allows the following: User.get('121') -# -# """ -# print("in get cls is:", cls) -# print(" key is {} : {}".format(type(key), key)) -# query = Model.query(cls) -# print("query is: ", query) -# record = query.get(key) -# return record -# -# -#print("Model is:", vars(Model)) -#Model.get = get + # Define models #roles_users = Table('roles_users', @@ -83,10 +53,7 @@ class User(Base): @property def login_count(self): return self.logins.filter_by(successful=True).count() - #return self.query.filter - #return len(self.logins) - #return 8 - #return len(self.logins.query.filter(User.logins.has(successful=True))) + @property def confirmed_at(self): @@ -104,16 +71,10 @@ class User(Base): return None - - #last_login_at = Column(DateTime()) - #current_login_at = Column(DateTime()) - #last_login_ip = Column(Unicode(39)) - #current_login_ip = Column(Unicode(39)) - #login_count = Column(Integer()) - #roles = relationship('Role', secondary=roles_users, # backref=backref('users', lazy='dynamic')) + class Login(Base): __tablename__ = "login" id = Column(Unicode(36), primary_key=True, default=lambda: unicode(uuid.uuid4())) @@ -127,15 +88,13 @@ class Login(Base): self.user = user.id self.ip_address = request.remote_addr -# Setup Flask-Security -#user_datastore = SQLAlchemyUserDatastore(db, User, Role) - -#class ExtendedRegisterForm(RegisterForm): -# name = TextField('name') -# #print("name is:", name['_name'], vars(name)) -# organization = TextField('organization') -# -#security = Security(app, user_datastore, register_form=ExtendedRegisterForm) - +################################################################################################## -#user_datastore.create_role(name="Genentech", description="Genentech Beta Project(testing)") +class UserCollection(Base): + __tablename__ = "user_collection" + id = Column(Unicode(36), primary_key=True, default=lambda: unicode(uuid.uuid4())) + user = Column(Unicode(36), ForeignKey('user.id')) + name = Column(Text) + created_timestamp = Column(DateTime(), default=lambda: datetime.datetime.utcnow()) + changed_timestamp = Column(DateTime(), default=lambda: datetime.datetime.utcnow()) + members = Column(Text) # We're going to store them as a json list -- cgit v1.2.3