biweeklybudget.flaskapp.views.scheduled module

class biweeklybudget.flaskapp.views.scheduled.OneScheduledAjax[source]

Bases: flask.views.MethodView

Handle GET /ajax/scheduled/<int:sched_trans_id> endpoint.

methods = {'GET'}
class biweeklybudget.flaskapp.views.scheduled.SchedTransFormHandler[source]

Bases: biweeklybudget.flaskapp.views.formhandlerview.FormHandlerView

Handle POST /forms/scheduled

methods = {'POST'}

Handle form submission; create or update models in the DB. Raises an Exception for any errors.

Parameters:data (dict) – submitted form data
Returns:message describing changes to DB (i.e. link to created record)
Return type:str

Validate the form data. Return None if it is valid, or else a hash of field names to list of error strings for each field.

Parameters:data (dict) – submitted form data
Returns:None if no errors, or hash of field name to errors for that field
class biweeklybudget.flaskapp.views.scheduled.ScheduledAjax[source]

Bases: biweeklybudget.flaskapp.views.searchableajaxview.SearchableAjaxView

Handle GET /ajax/scheduled endpoint.

_filterhack(qs, s, args)[source]

DataTables 1.10.12 has built-in support for filtering based on a value in a specific column; when this is done, the filter value is set in columns[N][search][value] where N is the column number. However, the python datatables package used here only supports the global search[value] input, not the per-column one.

However, the DataTable search is implemented by passing a callable to table.searchable() which takes two arguments, the current Query that’s being built, and the user’s search[value] input; this must then return a Query object with the search applied.

In python datatables 0.4.9, this code path is triggered on if callable(self.search_func) and search.get("value", None):

As such, we can “trick” the table to use per-column searching (currently only if global searching is not being used) by examining the per-column search values in the request, and setting the search function to one (this method) that uses those values instead of the global search[value].

  • qs (sqlalchemy.orm.query.Query) – Query currently being built
  • s (str) – user search value
  • args (dict) – args

Query with searching applied

Return type:



Render and return JSON response for GET /ajax/ofx

methods = {'GET'}
class biweeklybudget.flaskapp.views.scheduled.ScheduledTransView[source]

Bases: flask.views.MethodView


Render the GET /scheduled/<int:sched_trans_id> view using the scheduled.html template.

methods = {'GET'}
class biweeklybudget.flaskapp.views.scheduled.ScheduledView[source]

Bases: flask.views.MethodView


Render the GET /scheduled view using the scheduled.html template.

methods = {'GET'}