# TODOs


## General
 - [ ] we need the ability to have multiple template directories.
 - [ ] develop a django-css independent theme for the admin.
 - [ ] better 404 handling
 - [ ] better 500 handling
 

edit functionality:
 - edit-list (which fields can we edit)
    -> unlike in django, we have no access to the model completely, however, we also do not have to care.
 - widgets (how fields are rendered in the edit form)
    -> how would i create widgets? programmatically? in templates?
    -> maybe even both approaches available?
    -> need a list of MVP widgets, and a way to extend them.
    -> widgets should be groupable.
    -> taking a look at djangos solution!
    -> are there any smart json data => form things out there?
 - validation.
    -> client side as well? fomantic has it.
    -> existing solutions?
    -> transparent way to display error messages at the appropriate field (probably adding results into responses)
    -> handling: "required"
    -> handling: "invalid"
    -> example implementation: invalid(max-length)

auth:
 - user model.
 - auth middleware.
 - message the user.
    -> messaging system


## Widgets

In the widget section, we need to add more abilities to adjust attributes of html elements directly.
Probably options should be transmitted via JSON data.

## Form Foomatics

 - multi-item form fields (as in multiple inputs for one field, or multiple fields inside one field)
 ```html
   <div class="field">
      <label>Field Summary</label>
      <div class="two fields">
         <div class="field">
            <input>...</input>
         </div>
      </div>
   </div>
```
 - 

## Error System for Repository

Repository needs a good error system, and Results instead of just returning data;
These errors should encompass:
 - Validation Errors: these should allow forms to display issues, but not disrupt the flow
 - Wrong Data / Not Authorized and other 400 base
 - Not Found Error: for 404s
 - Internal Errors: for 500s

Repository functions also need to be redesigned to be Results.