Example #1
0
 def __init__(self, app):
     manager = CouchDBManager()
     # ...add document types and view definitions...
     manager.setup(app)
     server = Server()
     self.db = server['active_server_cp']
    @property
    def imgsrc(self):
        return uploaded_photos.url(self.filename)

    all = ViewField('photolog',
                    '''\
        function (doc) {
            if (doc.doc_type == 'post')
                emit(doc.published, doc);
        }''',
                    descending=True)


manager.add_document(Post)
manager.setup(app)

# utils


def to_index():
    return redirect(url_for('index'))


@app.before_request
def login_handle():
    g.logged_in = bool(session.get('logged_in'))


# views
Example #3
0
from flask.ext.couchdb import CouchDBManager, Document, TextField, IntegerField, DateTimeField, ViewField, Row, ViewDefinition

from flask import g
from werkzeug import LocalProxy
couch = LocalProxy(lambda: g.couch)

import datetime
import os

from app import app # omg cyclical imports!!

# Setup database here, so we have access to the manager object
app.config['COUCHDB_DATABASE'] = "bluepad"
app.config['COUCHDB_SERVER'] = os.getenv('CLOUDANT_URL', "http://localhost:5984/")
couch_manager = CouchDBManager()
couch_manager.setup(app)

# used for password encryption
from flaskext.bcrypt import Bcrypt
bcrypt = Bcrypt(app)

# User, but we'll be polite and call them writers :)
class Writer(Document):
    doc_type = "writer"
    name = TextField() # username/pen-name; not full name
    email = TextField() # optional
    password = TextField()
    @classmethod
    def new(cls, name=None):
        if name is None: name = haiku()
        # create a writer object and return it!
Example #4
0

def fetch_project_db(username, project):
	cur_project = couchdb_views.project_docs(g.couch)[username, project]
	if len(cur_project.rows) != 1:
		return None
	else:
		return cur_project.rows[0]


def fetch_block_db(block_uuid):
	cur_block = couchdb_views.project_content_docs(g.couch)[block_uuid]
	# cur_block.id
	if len(cur_block.rows) != 1:
		return None
	else:
		return cur_block.rows[0]


if __name__ == '__main__':
    app.config.update(
        DEBUG = True,
        COUCHDB_SERVER = 'http://localhost:5984/',
        COUCHDB_DATABASE = 'nerf-db'
    )
    couch.setup(app)
    couch.add_viewdef((couchdb_views.templates_docs, couchdb_views.users_docs,
    	couchdb_views.projects_docs, couchdb_views.project_docs, couchdb_views.project_content_docs))
    loginManager.login_view = 'login'
    loginManager.setup_app(app)
    app.run(host='0.0.0.0')