Initial commit.
Initial commit.
Add new directive on .gitignore.
Add function to test on apps/home/controllers.py.
Add function to test on apps/home/urls.py.
Remove arguments on Manager methods (except for the run and server).
Add filters.py.
Add helpers.py.
TODO: Make ReST by just providing class like how web.py does things :).
Add feature: Automatically decide what to do with a class on routing.
Add feature: A class will execute its GET method when a GET request is sent, and so too will use a POST method when a POST request is sent.
Modify apply_ assignment to a list of appended objects.
Modify controller arg of a class, from "self" to "request". This is due to Mako using the same keyword and causes error in Python.
Modify all return statements from dict ({data: data}) to locals().
Remove file: filters.py.
Remove function: get_methods.
Remove import: filters. This module now does not exist.
Move mako_view decorator above the method loop. It does not need to be looped.
Re-add method: Return the get_methods function to filter the method loop.
Update variable: Move set_[apply] variable before the method loop.
Update variable (config.py): Change INTERVAL from 0 to 1. The value 0 causes the application to keep on reloading just to check file modification which in effect, causes the CPU to become hot rather quickly.
Update functions (helpers.py): Change order of each functions in alphabetical order.
Add function: get_kwargs(args, separator). The sole purpose of this function is to handle the parameters given on the console when running the application (the sys.argv).
Update function (helpers.py): Change function name from class_to_func to to_func. This is for a shorter and more consistent naming of conversions (there is another one in the helpers.py called to_dict).
Update method (managers.py): route(). Filters are now automatically run from the file without specifying it manually in the root method. It will be appened on the "apply" filter of bottle on bottle.route.
Add method (managers.py): defaults(). The sole purpose of this method is to make the "app" object available on the Mako template. It can be called on directly on the template (e.g. ${app}) and access its modules (e.g. ${app.request.session}).
Update file (controllers.py): Change method parameter from request to self (which is more natural). The problem before was because Mako is also using the "self" keyword which causes conflict in Python (in kwargs).
Update functions (controllers.py): Each function and method has a brief explanation how to access the "app" itself and use its modules. However, this is not possible on function-only controllers since we cannot make the class inherit it.
Add directories: Add empty directories cache and uploads.
Update file (manager.py): Leave one line space after the file docstring.
Update method (manager.py): Add the "app" parameter on the class constructor (__init__).
Update file (server.py): Add an import (bottle) and use it as a parameter of the package "manager".
Update method (manager.py): "route()" Move all filter-related statements inside the "if template" so that they will only be applied when a template path is specified. This is done because not all routes requires filters (e.g. static files).
Update directory (static/): Modify existing static files (css, and js) to be tested on the template.
Add file (static/): "favicon.ico" to serve as a temporary favicon.
Add file (uploads/): "wooji.jpg" to serve as a testing file for uploaded files.
Update file (index.html): Apply necessary modification to locate and use external files (static/ and upload/ files).
Update directory (apps/): Add new apps to handle static/ and upload/ routes and files.
Add feature (models.py): Add use of SQLAlchemy to handle ORM transactions.
Add feature (forms.py): Add use of WTForms to handle auto-generation of forms based on related model.
Update file (controllers.py): Update methods and controllers to use and test wtforms.
Update method (forms.py): Replace returned value from models.session to self.session. The session variable is now not available on models module.
Update file (models.py): Move sqlalchemy related code that processes the engine and session. The file should only contain the class and attributes to be processed by sqlalchemy.
Add new methods (manager.py): "database()". The sqlalchemy-related code is placed here. This method will handle both the engine and orm session.
Update file (index.html): Modify to reflect current updates of forms.py.
Update file (controllers.py): Modify both function and methods to reflect the use and test case for sqlalchemy and wtforms.
Update method (forms.py): Change return value of get_session from cls.session to db.session. The session is now located at a separate file (db.py).
Update import (models.py): Change import from config to db. The db module now contains the Base that will be used for sqlalchemy.
Remove import (config.py): Remove the sqlalchemy import and corresponding variable (BASE_ORM). The declarative_base() is not located at the new file (db.py).
Add file (db.py): The file that contains the sqlalchemy engine, sessions and related models imports. This previously was located at manager.py as a method, however due to complexities of making the session available on forms.py and models.py of each apps, it have been best to place it on a separate file.
Remove method (manager.py): "database()". Remove database() method due to complexities it is causing just to make the session available on all models and forms.
Update file (index.html): Update this file to show the use cases of wtforms and sqlalchemy effects.
Update constants (config.py): Update names with a prefix matching their own category and/or use (e.g. all related to server will have a prefix of "SERVER_").
Update template and py files (*.{html,py}): Update each file to reflect the change and make them work smoothly.
Change directories (uploads, assets): Make all directory names plural for consistency.
Update locations (*.py): Move all python files to application/ directory excluding manager.py which its sole purpose is to call and run the application server.
Add global variable (__init__.py): Add "wooji" variable that simply is a tag to the bottle package. This is to ensure that the application is only using one instance of the bottle module all throughout the application.
Update variable (controllers.py): Replace todos variables as empty list "[]" due to a sqlalchemy bug which does not generate tables dynamically (code can be seen on db.py).
Update html attribute (index.html): Replace img src from "/static" to "/assets" to reflect new name and location of static files.
Update directory (application/): Change directory name from application/ to core/ which seems to be a more appropriate name.
Fix bug (controllers.py): Align returned locals() from one of the methods of Home object.
Add directory (sessions/): Add new empty directory to store sessions.