garfield.lockers.qt Package

This package contains all GUI elements of the locker application.

garfield.lockers.qt.get_current_locker_location(sess, locker_location_chooser)
garfield.lockers.qt.load_locker_admin_app()
garfield.lockers.qt.load_locker_front_app()
garfield.lockers.qt.refresh_key_locations_model(sess, key_location_chooser, location, default_key_location=None)
garfield.lockers.qt.refresh_locker_locations_model(sess, locker_location_chooser, chosen_locker_location=None)
garfield.lockers.qt.set_locker_table_row(table_widget, row, locker, show_lock=True, show_costs=True, show_state=True)

garfield.lockers.qt.accounting Module

Provides the accounting widgets.

class garfield.lockers.qt.accounting.LeaseRevenueAccountingWidget(parent, sess)

Bases: PyQt4.QtGui.QWidget

refresh_models(subtotal, mon, **_)
class garfield.lockers.qt.accounting.LockerAccountingWidget(parent, sess)

Bases: PyQt4.QtGui.QWidget

add_tab(widget, label)
refresh_models(mon, *args, **kwargs)
class garfield.lockers.qt.accounting.LockerCoinAccountingWidget(parent, sess)

Bases: PyQt4.QtGui.QWidget

refresh_models(subtotal, mon, **_)

garfield.lockers.qt.admin Module

Provides the dialogs for back-office administration.

class garfield.lockers.qt.admin.AbstractLocationBasedTableEditorWidget(parent, sess, location, environment_sess, **_)

Bases: PyQt4.QtGui.QWidget

get_current_item()
get_current_locker_location()
item_id_to_item(selected_id)
on_edit()
on_item_changed()
on_locker_location_changed()
on_new()
refresh_locker_locations_model()
refresh_model()
setup_table(_old_item)
setup_table_headers()
class garfield.lockers.qt.admin.AdminDialog(parent, sess, user, location, environment_sess, **_)

Bases: PyQt4.QtGui.QDialog

class garfield.lockers.qt.admin.KeyEditDialog(parent, sess, location, key=None)

Bases: PyQt4.QtGui.QDialog

current_description
current_key_location
refresh_key_locations_model(override_key_location=None)
class garfield.lockers.qt.admin.LockEditDialog(parent, sess, location, locker_location=None, lock=None)

Bases: PyQt4.QtGui.QDialog

check_valid_selection()
classmethod exec_create(parent, sess, location, locker_location=None)
classmethod exec_update(parent, sess, location, lock)
get_current_key()
get_current_lock_cost()
get_current_locker()
get_current_locker_location()
get_cylinder_nr()
is_cylinder_nr_unique()

Check whether the cylinder number is unique for the location.

on_edit_key()
on_key_item_changed()
on_new_key()
refresh_cylinder_nr()
refresh_keys_model()
refresh_lock_costs_model()
refresh_lock_log_model()
refresh_locker_locations_model()
refresh_lockers_model()
static update_keys(sess, lock, keys)
class garfield.lockers.qt.admin.LockerEditDialog(parent, sess, location, locker_location, locker=None)

Bases: PyQt4.QtGui.QDialog

check_valid_lock_chosen()
check_valid_selection()
edit_selected_lock()
get_current_cost()
get_current_duration()
get_current_lock()
get_current_locker_location()
get_current_size()
get_current_state()
get_official_number()
is_official_num_unique()

Check whether the official number is unique for the location.

refresh_coin_model()
refresh_costs_model()
refresh_durations_model()
refresh_locker_locations_model()
refresh_locks_model()
refresh_logs_model()
refresh_official_number()
refresh_sizes_model()
refresh_state_model()
class garfield.lockers.qt.admin.LockersAdminWidget(parent, sess, location, environment_sess, **_)

Bases: garfield.lockers.qt.admin.AbstractLocationBasedTableEditorWidget

item_id_to_item(locker_id)
on_edit()
on_new()
setup_table(old_locker)
setup_table_headers()
showEvent(ev)
title = u'Schlie\xdff\xe4cher'
class garfield.lockers.qt.admin.LocksAdminWidget(parent, sess, location, environment_sess, **_)

Bases: garfield.lockers.qt.admin.AbstractLocationBasedTableEditorWidget

item_id_to_item(lock_id)
on_edit()
on_new()
setup_table(old_lock)
setup_table_headers()
showEvent(ev)
title = u'Schl\xf6sser'
class garfield.lockers.qt.admin.UnsavedKey(dbkey=None, description=None, key_location=None)

Bases: object

garfield.lockers.qt.contract Module

Provides the dialogs for all directly contract related activities.

class garfield.lockers.qt.contract.CashPaymentCanceller(parent, environment_sess, sess, **_)

Bases: object

is_available(cash_box_log_row)
perform_on(cash_box_log_row)
class garfield.lockers.qt.contract.CashPaymentReceiptDetails(sess, parent, environment_sess, **_)

Bases: object

is_available(cash_box_log_row)
perform_on(cash_box_log_row)
class garfield.lockers.qt.contract.CashReturnCanceller(parent, environment_sess, sess, **_)

Bases: object

is_available(cash_box_log_row)
perform_on(cash_box_log_row)
class garfield.lockers.qt.contract.CloseContractDialog(parent, message_title, message_text)

Bases: garfield.qt.dialog.ExtendedMessageDialog

check_valid()
current_ended_date
class garfield.lockers.qt.contract.ContractDetailsDialog(parent, sess, environment_sess, user, location, contract)

Bases: PyQt4.QtGui.QDialog

Provides a dialog to perform actions on a locker lease contract.

cash_payment()
cash_return()
check_locker()
close_contract()
discard_contract()
edit_contract()
hideEvent(ev)
manage_keys()
print_contract()
refresh_lease_log_model()
remove_from_storage()
sign_contract()
uncheck_locker()
updated_contract()
class garfield.lockers.qt.contract.ContractEditDialog(parent, sess, environment_sess, request=None, contract=None, locker=None, person=None)

Bases: PyQt4.QtGui.QDialog

Provides a dialog to create or edit a locker lease contract.

end_date
static exec_create(parent, sess, environment_sess, request=None, locker=None, person=None)
static exec_update(parent, sess, environment_sess, contract)
refresh_locker_data()
refresh_person_data()
start_date
update_details()
update_end_date()
update_name()
verify_data()
class garfield.lockers.qt.contract.ContractsAdminWidget(parent, sess, environment_sess, user, location, **_)

Bases: PyQt4.QtGui.QWidget

contract_changed()
current_contract
edit_contract()
refresh_contracts_model()
title = u'Vertr\xe4ge'
class garfield.lockers.qt.contract.KeyLostDepositToRevenueCancelDialog(parent)

Bases: garfield.lockers.qt.contract.PromptWithCommentDialog

class garfield.lockers.qt.contract.KeyLostDepositToRevenueCancelHook(sess, parent, **_)

Bases: object

is_available(lease_log_row)
perform_on(lease_log_row)
class garfield.lockers.qt.contract.KeyLostDepositToRevenueDialog(parent, sess, lease_log_row)

Bases: PyQt4.QtGui.QDialog

check_valid()
current_description
current_gross_value
current_service_date
current_tax_group
class garfield.lockers.qt.contract.KeyLostDepositToRevenueHook(sess, parent, **_)

Bases: object

is_available(lease_log_row)
perform_on(lease_log_row)
class garfield.lockers.qt.contract.KeyReturnDialog(parent, sess, location)

Bases: garfield.qt.dialog.ExtendedMessageDialog

check_valid()
current_key_location
class garfield.lockers.qt.contract.LeaseLogCashBoxLogProxy(*args, **kwargs)

Bases: object

Forwards the is_available() and perform_on() method calls to the PROXY_CLASS and translates instances of LeaseLog into instances of CashBoxLog if possible. If the translation isn’t possible, the methods return False.

PROXY_CLASS = None
is_available(lease_log_row)
perform_on(lease_log_row)
class garfield.lockers.qt.contract.LeaseLogHelper(sess, lease_log_table, refresh_hook, parent, environment_sess)

Bases: object

current_row_item()
class garfield.lockers.qt.contract.LockerCheckedDialog(parent, sess, locker)

Bases: PyQt4.QtGui.QDialog

Provides a dialog that queries the user whether the locker was actually checked, whether anything needed to be stored and what coin was left within the locker.

check_valid()
current_coin_value
current_locker_empty
current_moved_to_storage
current_storage_description
refresh_coin_value_chooser()
class garfield.lockers.qt.contract.ManageKeysDialog(parent, sess, location, environment_sess, contract)

Bases: PyQt4.QtGui.QDialog

get_current_available_key()
get_current_given_key()
give_key()
lose_key()
on_available_key_item_changed()
on_given_key_item_changed()
print_receipt(lease_log_entry, printer, printer_options, latex_file)
refresh_available_keys_model()
refresh_given_keys_model()
refresh_models()
return_key()
class garfield.lockers.qt.contract.PromptWithCommentDialog(parent, message_title, message_text, enforce_comment=True)

Bases: garfield.qt.dialog.ExtendedMessageDialog

check_valid()
current_comment
garfield.lockers.qt.contract.expand_payment_details(environment_sess, log_entry)
garfield.lockers.qt.contract.proxy_to_cash_box_log(cls)
garfield.lockers.qt.contract.refresh_contracts_model(contract_table, contracts, default_contract, show_user=False)

garfield.lockers.qt.person Module

Contains all dialogs directly concerning Person and PersonDetail.

class garfield.lockers.qt.person.FullNameEditDialog(parent, person)

Bases: PyQt4.QtGui.QDialog

Provides a dialog to set or edit a person’s full name.

static exec_(parent, sess, person)

Creates and displays the dialog and commits the changes to the database. Returns True on success or False in case the user aborted the operation.

full_name
on_full_name_changed()
class garfield.lockers.qt.person.PersonDetailsEditDialog(parent, environment_sess, person)

Bases: PyQt4.QtGui.QDialog

Provides a dialog to set or edit a person’s personal details.

address
city
country
static exec_(parent, sess, environment_sess, person)

Create and show the dialog and commit the changes to the database. Returns True on success or False in case the user aborted the operation.

get_phone_number()

Returns a tuple consisting of the phone number as string and a boolean indicating whether it is a valid phone number. Note that not specifying a phone number is considered a valid phone number.

is_phone_number_valid()
load_field(field_name)
phone_number
postalcode
search_country(search_text)
verify_data()
class garfield.lockers.qt.person.VerifyAccountDialog(parent, sess, email_address, person)

Bases: PyQt4.QtGui.QDialog

Provides a dialog where a person can be verified by entering the person’s current authentication key. Does on-the-fly check of the key.

authentication_key
on_authentication_key_changed()

garfield.lockers.qt.request Module

Contains all dialogs concerning locker requests and locker assignments.

class garfield.lockers.qt.request.ChooseLockerDialog(parent, sess, request=None)

Bases: garfield.lockers.qt.request.RequestDetailsWidgetController, PyQt4.QtGui.QDialog

Selects a locker based on a set of criteria.

get_current_locker()
selected_locker_changed
class garfield.lockers.qt.request.CloseRequestDialog(parent, sess)

Bases: garfield.qt.dialog.ExtendedMessageDialog

check_valid_selection()
reason
refresh_reasons_model()
class garfield.lockers.qt.request.EditRequestDialog(parent, sess, request=None)

Bases: garfield.lockers.qt.request.RequestDetailsWidgetController, PyQt4.QtGui.QDialog

Edits an existing request or creates a new request.

class garfield.lockers.qt.request.RequestDetailsWidgetController(widget, sess, request=None)

Bases: object

This class layers common locker request details handling logic on top of a passed-in request details widget. The logic is not embedded in the custom widget class so that the locker specific database logic does not need to be loaded during Qt Designer dialog construction sessions.

get_current_comment()
get_current_duration()
get_current_end_date()
get_current_locker_location()
get_current_max_offset()
get_current_min_offset()
get_current_start_date()
on_end_date_changed()
refresh_comment_model()
refresh_duration_model()
refresh_locker_locations_model()
refresh_max_offset_model()
refresh_min_offset_model()
refresh_offset_model(offset_widget, chosen_offset, requested_offset)
refresh_start_date_model()
class garfield.lockers.qt.request.RequestsAdminWidget(parent, sess, environment_sess, **_)

Bases: PyQt4.QtGui.QWidget

current_request
refresh_requests_model()
request_changed()
reserve_locker()
revoke_reservation()
title = u'Antr\xe4ge'
class garfield.lockers.qt.request.ReserveLockerDialog(parent, sess, request=None)

Bases: garfield.lockers.qt.request.ChooseLockerDialog

on_selected_locker_changed()
garfield.lockers.qt.request.refresh_requests_model(requests_table, requests, default_request=None, show_user=False)

garfield.lockers.qt.search Module

Provides the dialog for the main entry point of the locker application.

class garfield.lockers.qt.search.SearchDialog(parent, sess, environment_sess, user, location, **_)

Bases: PyQt4.QtGui.QDialog

LOCAL_PART_RE = <_sre.SRE_Pattern object>
close_request()
create_request()
delete_details()
edit_contract()
edit_request()
email_address
get_current_contract()
get_current_request()
get_email_domain()
on_selected_contract_changed()
on_selected_request_changed()
person
refresh_contracts_model()
refresh_email_domains_model()
refresh_requests_model()
register_account()
resend_authentication()
reservation_to_contract()
reserve_locker_for_request()
revoke_reservation()
search_email()
send_new_authentication()
set_email_warning(warning_text)
update_details()
update_name()
update_person()
updated_person()
verify_account()

garfield.lockers.qt.widget Module

class garfield.lockers.qt.widget.LockerRequestDetailsWidget(parent)

Bases: PyQt4.QtGui.QWidget

Provides the common locker request details controls - without the underlying common logic. See :class:RequestDetailsWidgetController for the common logic part.

comment_visible
get_comment_visible()
reset_comment_visible()
set_comment_visible(is_visible)