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': <class '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=<class 'str'>, choices=None, **kwargs)[source]¶ Bases:
wtforms.fields.core.SelectMultipleField
A 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.Model
A model for a meeting. Linked to a
Criterion
to 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.Model
Model 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.Model
Model for a BadgeCriterion. Acts as an intermediary between
BeaverBadge
andCriterion
Parameters: - 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 theBeaverBadge
that 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.Model
Model 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 ofEmergencyContact
objects associated with the beaver
-
badges
¶ list[
BeaverBadge
] – A list ofBeaverBadge
associated with the beaver
-
beaver_attendances
¶ list[
BeaverAttendance
] – A list ofBeaverAttendance
objects associated with the beaver
-
-
class
beaver_manager.models.
BeaverAttendance
(attendance_id, beaver_id, present)[source]¶ Bases:
flask_sqlalchemy.Model
Model for a BeaverAttendance. Acts as an intermediary between
Beaver
andAttendance
Parameters: - 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 theAttendance
that BeaverAttendance is asscociated with
- attendance_id (int) – Foreign key for
-
class
beaver_manager.models.
BeaverBadge
(beaver_id, badge_id, completed)[source]¶ Bases:
flask_sqlalchemy.Model
Model for a BeaverBadge. Acts as an intermediary between
Beaver
andBadge
Parameters: -
id
¶ int – Unique Primary Key.
-
-
class
beaver_manager.models.
BeaverTrip
(beaver_id, trip_id, permission, paid)[source]¶ Bases:
flask_sqlalchemy.Model
Model for a BeaverTrip. Acts as intermediary between
Beaver
andTrip
Parameters: -
id
¶ int – Unique Primary Key.
-
-
class
beaver_manager.models.
Criterion
(**kwargs)[source]¶ Bases:
flask_sqlalchemy.Model
Model for a Criterion.
-
id
¶ int – Unique Primary Key.
-
description
¶ str – Desription of criterion
-
-
class
beaver_manager.models.
EmergencyContact
(**kwargs)[source]¶ Bases:
flask_sqlalchemy.Model
Model 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.Model
Model 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.Model
A 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.ModelView
Custom view for Flask-Admin. Adds BeaverAttendance as an inline view
-
action_view
()¶ Mass-model action view.
-
ajax_lookup
()¶
-
ajax_update
()¶ Edits a single column of a record in list view.
-
create_view
()¶ Create model view
-
delete_view
()¶ Delete model view. Only POST method is allowed.
-
details_view
()¶ Details model view
-
edit_view
()¶ Edit model view
-
export_csv
()¶ Export a CSV of records.
-
form_excluded_columns
= 'beaver_attendances'¶
-
index_view
()¶ 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.ModelView
Custom view for Flask-Admin. Adds criterion as inline model and modifies update behaviour
-
action_view
()¶ Mass-model action view.
-
ajax_lookup
()¶
-
ajax_update
()¶ Edits a single column of a record in list view.
-
create_view
()¶ Create model view
-
delete_view
()¶ Delete model view. Only POST method is allowed.
-
details_view
()¶ Details model view
-
edit_view
()¶ Edit model view
-
export_csv
()¶ Export a CSV of records.
-
form_excluded_columns
= 'beaver_badges'¶
-
index_view
()¶ 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.ModelView
Only used for debugging. Custom view for Flask-Admin. Adds BadgeCriterion as an inline view
-
action_view
()¶ Mass-model action view.
-
ajax_lookup
()¶
-
ajax_update
()¶ Edits a single column of a record in list view.
-
create_view
()¶ Create model view
-
delete_view
()¶ Delete model view. Only POST method is allowed.
-
details_view
()¶ Details model view
-
edit_view
()¶ Edit model view
-
export_csv
()¶ Export a CSV of records.
-
index_view
()¶ 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.ModelView
Custom view for Flask-Admin. Adds emergency contacts as inline model and modifies update behaviour
-
action_view
()¶ Mass-model action view.
-
ajax_lookup
()¶
-
ajax_update
()¶ Edits a single column of a record in list view.
-
create_view
()¶ Create model view
-
delete_view
()¶ Delete model view. Only POST method is allowed.
-
details_view
()¶ Details model view
-
edit_view
()¶ Edit model view
-
export_csv
()¶ Export a CSV of records.
-
form_excluded_columns
= ('badges', 'beaver_attendances', 'trips')¶
-
index_view
()¶ 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.ModelView
Custom view for Flask-Admin modifying update behaviour
-
action_view
()¶ Mass-model action view.
-
ajax_lookup
()¶
-
ajax_update
()¶ Edits a single column of a record in list view.
-
create_view
()¶ Create model view
-
delete_view
()¶ Delete model view. Only POST method is allowed.
-
details_view
()¶ Details model view
-
edit_view
()¶ Edit model view
-
export_csv
()¶ Export a CSV of records.
-
form_excluded_columns
= 'trips'¶
-
index_view
()¶ 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_badge
and if so setsbeaver_badge.completed
to 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.completed
to TrueParameters: attendance (Attendance) – The attendance for which criterion need updating