beaver_manager package¶
Beaver Management app using flask
-
beaver_manager.db¶ SQLAlchemy– SQLAlchemy databse instance
Submodules¶
beaver_manager.decorators module¶
beaver_manager.email module¶
Module to control email
-
beaver_manager.email.send_email(subject, sender, recipients, text_body, html_body)[source]¶ Sends email to recipent using the flasks email module
Args: subject (str): Plain text sender (str): Sender of email in plain text recepients (str): Reciepent email. Can be list of strings text_body (str): Body of message without HTML formatting html_body (str): Body of message with HTML formattin
beaver_manager.forms module¶
-
class
beaver_manager.forms.BeaverAttendanceForm(formdata=<class flask_wtf.form._Auto>, obj=None, prefix='', csrf_context=None, secret_key=None, csrf_enabled=None, *args, **kwargs)[source]¶ Bases:
flask_wtf.form.Form-
beavers= <UnboundField(MultiCheckboxField, ('Present: ',), {'coerce': <type 'int'>})>¶
-
-
class
beaver_manager.forms.BeaverSortForm(formdata=<class flask_wtf.form._Auto>, obj=None, prefix='', csrf_context=None, secret_key=None, csrf_enabled=None, *args, **kwargs)[source]¶ Bases:
flask_wtf.form.Form-
sort_on= <UnboundField(SelectField, ('Sort By',), {'choices': [('surname', 'Surname'), ('first_name', 'First Name'), ('lodge.name', 'Lodge')]})>¶
-
-
class
beaver_manager.forms.EmailForm(formdata=<class flask_wtf.form._Auto>, obj=None, prefix='', csrf_context=None, secret_key=None, csrf_enabled=None, *args, **kwargs)[source]¶ Bases:
flask_wtf.form.Form-
message= <UnboundField(TextAreaField, (), {})>¶
-
subject= <UnboundField(StringField, (), {})>¶
-
-
class
beaver_manager.forms.MultiCheckboxField(label=None, validators=None, coerce=<type 'unicode'>, choices=None, **kwargs)[source]¶ Bases:
wtforms.fields.core.SelectMultipleFieldA multiple-select, except displays a list of checkboxes.
Iterating the field will produce subfields, allowing custom rendering of the enclosed checkbox fields.
-
option_widget= <wtforms.widgets.core.CheckboxInput object>¶
-
widget= <wtforms.widgets.core.ListWidget object>¶
-
-
class
beaver_manager.forms.TripSortForm(formdata=<class flask_wtf.form._Auto>, obj=None, prefix='', csrf_context=None, secret_key=None, csrf_enabled=None, *args, **kwargs)[source]¶ Bases:
flask_wtf.form.Form-
sort_on= <UnboundField(SelectField, ('Sort By',), {'choices': [('date', 'Date'), ('location', 'Location')]})>¶
-
beaver_manager.models module¶
This module contains SQLAlchemy model definitions to create SQL tables
-
class
beaver_manager.models.Attendance(**kwargs)[source]¶ Bases:
flask_sqlalchemy.ModelA model for a meeting. Linked to a
Criterionto allow automatic completetion of badges. If beaver was present for the meeting then the criterion is completed.-
id¶ int – Unique Primary Key.
-
date¶ DateTime – Date of meeting
-
description¶ str – Brief description of evening
-
organiser¶ str – Name of organiser for that meeting
-
-
class
beaver_manager.models.Badge(**kwargs)[source]¶ Bases:
flask_sqlalchemy.ModelModel for a Badge
-
id¶ int – Unique Primary Key.
-
name¶ str – Name of the badge
-
img_url¶ str – URL for the badge image
-
beavers_badges¶ list[
BeaverBadge] – A list of beavers_badges asscociated with the lodge
-
-
class
beaver_manager.models.BadgeCriterion(criterion_id, badge_id, completed)[source]¶ Bases:
flask_sqlalchemy.ModelModel for a BadgeCriterion. Acts as an intermediary between
BeaverBadgeandCriterionParameters: - criterion_id (int) – Foreign key for
Criterion - badge_id (int) – Foreign key for
BeaverBadge - completed (bool) – Represents whether the criterion has been completed or not
-
id¶ int – Unique Primary Key.
-
badge¶ BeaverBadge– Provides a link to theBeaverBadgethat criterion is asscociated with
-
description¶ str – Desription of criterion
- criterion_id (int) – Foreign key for
-
class
beaver_manager.models.Beaver(**kwargs)[source]¶ Bases:
flask_sqlalchemy.ModelModel for a beaver
-
id¶ int – Unique Primary Key.
-
first_name¶ str – The beaver’s first name
-
surname¶ str – The beaver’s surname
-
dob¶ DateTime – The beaver’s date of birth
-
contacts¶ list[
EmergencyContact] – A list ofEmergencyContactobjects associated with the beaver
-
badges¶ list[
BeaverBadge] – A list ofBeaverBadgeassociated with the beaver
-
beaver_attendances¶ list[
BeaverAttendance] – A list ofBeaverAttendanceobjects associated with the beaver
-
-
class
beaver_manager.models.BeaverAttendance(attendance_id, beaver_id, present)[source]¶ Bases:
flask_sqlalchemy.ModelModel for a BeaverAttendance. Acts as an intermediary between
BeaverandAttendanceParameters: - attendance_id (int) – Foreign key for
Attendance - beaver_id (int) – Foreign key for
Beaver - present (bool) – Represents whether the beaver was been presesnt or not
-
id¶ int – Unique Primary Key.
-
attendance¶ Attendance– Provides a link to theAttendancethat BeaverAttendance is asscociated with
- attendance_id (int) – Foreign key for
-
class
beaver_manager.models.BeaverBadge(beaver_id, badge_id, completed)[source]¶ Bases:
flask_sqlalchemy.ModelModel for a BeaverBadge. Acts as an intermediary between
BeaverandBadgeParameters: -
id¶ int – Unique Primary Key.
-
-
class
beaver_manager.models.BeaverTrip(beaver_id, trip_id, permission, paid)[source]¶ Bases:
flask_sqlalchemy.ModelModel for a BeaverTrip. Acts as intermediary between
BeaverandTripParameters: -
id¶ int – Unique Primary Key.
-
-
class
beaver_manager.models.Criterion(**kwargs)[source]¶ Bases:
flask_sqlalchemy.ModelModel for a Criterion.
-
id¶ int – Unique Primary Key.
-
description¶ str – Desription of criterion
-
-
class
beaver_manager.models.EmergencyContact(**kwargs)[source]¶ Bases:
flask_sqlalchemy.ModelModel for an Emergency contact
-
id¶ int – Unique Primary Key.
-
linked to the contact
-
first_name¶ str – The contact’s first name
-
surname¶ str – The contact’s surname
-
email¶ str – The contact’s email
-
phone_number¶ str – The contact’s phone number
-
address_line1¶ str – The contact’s first address line
-
address_line2¶ str – The contact’s first second address line
-
town¶ str – The town in which the Contact lives
-
county¶ str – The county in which the Contact lives
-
postcode¶ str – The contact’s postcode
-
-
class
beaver_manager.models.Lodge(**kwargs)[source]¶ Bases:
flask_sqlalchemy.ModelModel for a Lodge (group of beavers)
-
id¶ int – Unique Primary Key.
-
name¶ str – Name of the lodge
-
-
class
beaver_manager.models.Trip(**kwargs)[source]¶ Bases:
flask_sqlalchemy.ModelA model for a Trip.
-
id¶ int – Unique Primary Key.
-
location¶ str – Place Name
-
cost¶ numeric – Cost of trip [Max Value of 99999.99]
-
date¶ DateTime – Date of trip
-
overnight¶ bool – Whether trip is overight
-
number_of_nights¶ int – Number of nights the trip is
-
beaver_manager.views module¶
This module contains the views for the app.
Using flasks route() function to route the
request it then executes the nesecerrary code return a rendered template at
the end.
-
class
beaver_manager.views.AttendanceModelView(model, session, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
flask_admin.contrib.sqla.view.ModelViewCustom view for Flask-Admin. Adds BeaverAttendance as an inline view
-
action_view(*args, **kwargs)¶ Mass-model action view.
-
ajax_lookup(*args, **kwargs)¶
-
ajax_update(*args, **kwargs)¶ Edits a single column of a record in list view.
-
create_view(*args, **kwargs)¶ Create model view
-
delete_view(*args, **kwargs)¶ Delete model view. Only POST method is allowed.
-
details_view(*args, **kwargs)¶ Details model view
-
edit_view(*args, **kwargs)¶ Edit model view
-
export_csv(*args, **kwargs)¶ Export a CSV of records.
-
form_excluded_columns= 'beaver_attendances'¶
-
index_view(*args, **kwargs)¶ List view
-
-
class
beaver_manager.views.BadgeModelView(model, session, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
flask_admin.contrib.sqla.view.ModelViewCustom view for Flask-Admin. Adds criterion as inline model and modifies update behaviour
-
action_view(*args, **kwargs)¶ Mass-model action view.
-
ajax_lookup(*args, **kwargs)¶
-
ajax_update(*args, **kwargs)¶ Edits a single column of a record in list view.
-
create_view(*args, **kwargs)¶ Create model view
-
delete_view(*args, **kwargs)¶ Delete model view. Only POST method is allowed.
-
details_view(*args, **kwargs)¶ Details model view
-
edit_view(*args, **kwargs)¶ Edit model view
-
export_csv(*args, **kwargs)¶ Export a CSV of records.
-
form_excluded_columns= 'beaver_badges'¶
-
index_view(*args, **kwargs)¶ List view
-
inline_models= (<class 'beaver_manager.models.Criterion'>,)¶
-
-
class
beaver_manager.views.BeaverBadgeModelView(model, session, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
flask_admin.contrib.sqla.view.ModelViewOnly used for debugging. Custom view for Flask-Admin. Adds BadgeCriterion as an inline view
-
action_view(*args, **kwargs)¶ Mass-model action view.
-
ajax_lookup(*args, **kwargs)¶
-
ajax_update(*args, **kwargs)¶ Edits a single column of a record in list view.
-
create_view(*args, **kwargs)¶ Create model view
-
delete_view(*args, **kwargs)¶ Delete model view. Only POST method is allowed.
-
details_view(*args, **kwargs)¶ Details model view
-
edit_view(*args, **kwargs)¶ Edit model view
-
export_csv(*args, **kwargs)¶ Export a CSV of records.
-
index_view(*args, **kwargs)¶ List view
-
inline_models= (<class 'beaver_manager.models.BadgeCriterion'>,)¶
-
-
class
beaver_manager.views.BeaverModelView(model, session, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
flask_admin.contrib.sqla.view.ModelViewCustom view for Flask-Admin. Adds emergency contacts as inline model and modifies update behaviour
-
action_view(*args, **kwargs)¶ Mass-model action view.
-
ajax_lookup(*args, **kwargs)¶
-
ajax_update(*args, **kwargs)¶ Edits a single column of a record in list view.
-
create_view(*args, **kwargs)¶ Create model view
-
delete_view(*args, **kwargs)¶ Delete model view. Only POST method is allowed.
-
details_view(*args, **kwargs)¶ Details model view
-
edit_view(*args, **kwargs)¶ Edit model view
-
export_csv(*args, **kwargs)¶ Export a CSV of records.
-
form_excluded_columns= ('badges', 'beaver_attendances', 'trips')¶
-
index_view(*args, **kwargs)¶ List view
-
inline_models= (<class 'beaver_manager.models.EmergencyContact'>,)¶
-
-
class
beaver_manager.views.MyHomeView(name=None, category=None, endpoint=None, url=None, template='admin/index.html', menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
flask_admin.base.AdminIndexView
-
class
beaver_manager.views.TripModelView(model, session, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
flask_admin.contrib.sqla.view.ModelViewCustom view for Flask-Admin modifying update behaviour
-
action_view(*args, **kwargs)¶ Mass-model action view.
-
ajax_lookup(*args, **kwargs)¶
-
ajax_update(*args, **kwargs)¶ Edits a single column of a record in list view.
-
create_view(*args, **kwargs)¶ Create model view
-
delete_view(*args, **kwargs)¶ Delete model view. Only POST method is allowed.
-
details_view(*args, **kwargs)¶ Details model view
-
edit_view(*args, **kwargs)¶ Edit model view
-
export_csv(*args, **kwargs)¶ Export a CSV of records.
-
form_excluded_columns= 'trips'¶
-
index_view(*args, **kwargs)¶ List view
-
-
beaver_manager.views.beaver(beaver_id)[source]¶ Displays Information about the given beaver
Parameters: beaver_id (int) – The ID number of the beaver record
-
beaver_manager.views.beavers()[source]¶ Queries the database for all beavers then displays a list of them
-
beaver_manager.views.register(attendance_id)[source]¶ Displays a form to record beavers atendance.
Parameters: attendance_id (int) – The ID number of the attendance record
-
beaver_manager.views.registers()[source]¶ Displays a list displaying dates for which registers can be taken
beaver_manager.logic module¶
This module contains any logic that does not belong in any other module
-
beaver_manager.logic.to_percent(value, total)[source]¶ Works out the percentage of a value from a total.
Parameters: Returns: Number between 0.0 and 100.0
Return type: (int)
-
beaver_manager.logic.update_beaver_badge(beaver_badge)[source]¶ Checks to see if all the criteria are completed for
beaver_badgeand if so setsbeaver_badge.completedto TrueParameters: - beaver_badge (BeaverBadge) – The beaver badge which need
- checking –
-
beaver_manager.logic.update_criterion(attendance)[source]¶ Check whether a beaver was present for a given attendance and if so sets the corrosponding
criterion.completedto TrueParameters: attendance (Attendance) – The attendance for which criterion need updating