--- a/README.rst Fri Nov 08 09:39:11 2013 +0000
+++ b/README.rst Sun Apr 05 02:51:05 2015 +0800
-Just another todo app. Well, maybe not quite, because it can track
-projects, tasks and notes for tasks in multiple different workspaces. It
-looks nice because it's built with Bootstrap and is, to some extent,
-elegant code-wise because it was built with Backbone, Flask and CodernityDB.
+Just another todo app. Well, maybe not quite, because it can track projects,
+tasks and notes for tasks in multiple different workspaces. It looks nice
+because it's built with Bootstrap and is, to some extent, elegant code-wise
+because it was built with Backbone, Flask and CodernityDB.
-This is my way to try out some new technologies in a project slightly more
+This is my way to try out some new technologies in a project slightly more
sophisticated than Hello World. Currently these technologies are:
-If you have tried Fruitbar via the link above or have read the source code,
-you may now be wondering, "isn't not having passwords a bit insecure?" And
-the answer is no. As in "no, it's a *whole lot* insecure to not have
-passwords." But this is a research project and it isn't pretending to be
-secure. Keep in mind that everything you put in it everyone else may read
+If you have tried Fruitbar via the link above or have read the source code, you
+may now be wondering, "isn't not having passwords a bit insecure?" And the
+answer is no. As in "no, it's a *whole lot* insecure to not have passwords."
+But this is a research project and it isn't pretending to be secure. Keep in
+mind that everything you put in it everyone else may read or edit.
--- a/app.py Fri Nov 08 09:39:11 2013 +0000
+++ b/app.py Sun Apr 05 02:51:05 2015 +0800
@app.before_first_request
db_path = os.path.join(os.path.dirname(__file__), app.config['DATABASE'])
cdb = ThreadSafeDatabase(db_path)
cdb.add_index(ProjectIndex(cdb.path, 'project'))
cdb.add_index(TaskIndex(cdb.path, 'task'))
class Project(CRUDResource):
safe_fields = ('name', 'color')
def delete(self, workspace, resource_id):
g.db.run('task', 'delete_for_project', workspace, resource_id)
return super(Project, self).delete(workspace, resource_id)
--- a/templates/index.html Fri Nov 08 09:39:11 2013 +0000
+++ b/templates/index.html Sun Apr 05 02:51:05 2015 +0800
<title>Fruit Bar Progress Tracker</title>
<link type="image/x-icon" href="{{ url_for('static', filename='favicon.ico') }}" rel="shortcut icon">
<link type="text/css" href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap-combined.min.css" rel="stylesheet">
<link type="text/css" href="{{ url_for('static', filename='css/custom.css') }}" rel="stylesheet">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script>
<script type="text/javascript" src="{{ ASSET_URL }}"></script>
_.extend(_.templateSettings, {
<section class="projects">
<script id="project-template" type="text/template">
data-model-attribute="name"><%- data.name %></span>
<div class="progress progress-striped">
<div class="tasks"></div>
<script id="task-template" type="text/template">
<input type="checkbox" <% if (data.done) print('checked') %>>
- <span class="inline-editable"
+ <span class="inline-editable"
data-model-attribute="name"><%- data.name %></span>