Changeset - 74d44e8edc79
[Not reviewed]
v0.9.268
0 2 0
Lance Edgar (lance) - 3 years ago 2022-03-08 14:19:17
lance@edbob.org
Update changelog
2 files changed with 7 insertions and 1 deletions:
0 comments (0 inline, 0 general)
CHANGES.rst
Show inline comments
 

	
 
CHANGELOG
 
=========
 

	
 
0.9.268 (2022-03-08)
 
--------------------
 

	
 
* Allow "default" batch handlers to be registered in config.
 

	
 

	
 
0.9.267 (2022-03-07)
 
--------------------
 

	
 
* Add upload "temp dir" setting for pyramid in "complete" ``web.conf``.
 

	
 

	
 
0.9.266 (2022-03-05)
 
--------------------
 

	
 
* Add commands, ``setting-get`` and ``setting-put``.
 

	
 
* Assume remote borg command is just ``borg`` by default.
 

	
 
* Enable email by default in "complete" rattail config template.
 

	
 
* Record app package name in complete config file template.
 

	
 
* Add initial/stub support for managing poser views.
 

	
 
* Add ``AppHandler.render_mako_template()`` convenience method.
 

	
 

	
 
0.9.265 (2022-03-02)
 
--------------------
 

	
 
* Add basic Poser support for custom reports.
 

	
 

	
 
0.9.264 (2022-03-01)
 
--------------------
 

	
 
* Define appdir in complete config template.
 

	
 
* Add very basic / beginnings of Poser Handler.
 

	
 
* Add "vendor not shipped" status for receiving batch.
 

	
 

	
 
0.9.263 (2022-02-26)
 
--------------------
 

	
 
* Some tweaks for importing data from Excel (xlsx) files.
 

	
 
* Add ``config.parse_list()`` method.
 

	
 
* Auto filter by date, for ``trainwreck import-self``.
 

	
 
* Add problem report for "mailmon misses".
 

	
 

	
 
0.9.262 (2022-02-25)
 
--------------------
 

	
 
* Add ``make_appdir()`` and ``make_config_file()`` to AppHandler.
 

	
 
* Add "complete" mako templates for rattail, web config.
 

	
 
* Fetch discounts along with line items for ``trainwreck import-self``.
 

	
 
* Add "discount type" for Trainwreck line item discounts.
 

	
 

	
 
0.9.261 (2022-02-20)
 
--------------------
 

	
 
* Add patronage to trainwreck schema; skeleton for ``import-self`` cmd.
 

	
 
* Add per-item discounts to trainwreck; importing support.
 

	
 
* Add ``AppHandler.render_percent()`` convenience method.
 

	
 

	
 
0.9.260 (2022-02-15)
 
--------------------
 

	
 
* Add AppHandler methods to get/save/delete settings.
 

	
 
* Add "fuzzy fields" support for int/float/decimal.
 

	
 
* Render empty string if currency value is ``None``.
 

	
 

	
 
0.9.259 (2022-02-13)
 
--------------------
 

	
 
* Add "fuzzy fields" concept for importers.
 

	
 
* Make ``locate_product_for_vendor_code()`` prefer unit items.
 

	
 
* Compare received vs. shipped to check row status.
 

	
 
* Add ``AppHandler.render_duration()`` convenience method.
 

	
 
* Stop using legacy syntax to define entry points.
 

	
 

	
 
0.9.258 (2022-02-10)
 
--------------------
 

	
 
* Always pass along associated products when printing label batch.
 

	
 
* Add generic ``get_next_counter_value()`` method for importers.
 

	
 

	
 
0.9.257 (2022-02-09)
 
--------------------
 

	
 
* Show email address for new custorder person autocomplete.
 

	
 

	
 
0.9.256 (2022-02-08)
 
--------------------
 

	
 
* Add common normalize logic to ``ProductsHandler``.
 

	
 

	
 
0.9.255 (2022-02-07)
 
--------------------
 

	
 
* Show pseudo-progress when saving Excel report.
 

	
 
* Lower log level when disconnecting IMAP for mailmon.
 

	
 

	
 
0.9.254 (2022-02-06)
 
--------------------
 

	
 
* Add ``match_on_time_field`` for Trainwreck importers.
 

	
 

	
 
0.9.253 (2022-02-05)
 
--------------------
 

	
 
* Add "all" product locate methods to products handler.
 

	
 
* Commit (or rollback) local transaction before host, when importing.
 

	
 

	
 
0.9.252 (2022-02-04)
 
--------------------
 

	
 
* Tweak vendor catalog batch input params; fix tests.
 

	
 
* Make sure default phone number is first, when importing.
 

	
 
* Add ``group_ids`` field for Customer model importer.
 

	
 

	
 
0.9.251 (2022-02-01)
 
--------------------
 

	
 
* Misc. flexibility improvements for vendor catalog batch.
 

	
 

	
 
0.9.250 (2022-02-01)
 
--------------------
 

	
 
* Allow rattail watcher to get deleted before new/dirty changes.
 

	
 

	
 
0.9.249 (2022-01-31)
 
--------------------
 

	
 
* Rename permission for generating new report.
 

	
 
* Add ``CSVReport`` base class.
 

	
 

	
 
0.9.248 (2022-01-31)
 
--------------------
 

	
 
* Stash docstring for ReportParam in its ``helptext`` attr.
 

	
 
* Add ``safe_filename()`` method for reports.
 

	
 

	
 
0.9.247 (2022-01-31)
 
--------------------
 

	
 
* Always establish start/end date+time range for all importers.
 

	
 
* Fix typo for printing batch of labels.
 

	
 
* Add project generators for rattail-integration, tailbone-integration.
 

	
 
* Add ``--list-all-models`` flag for all import/export commands.
 

	
 
* Avoid cache query when fetching single local object for importer.
 

	
 
* Only delete object if importer allows it, from datasync.
 

	
 
* Change default initial delay for luigi OvernightTask datasync wait.
 

	
 

	
 
0.9.246 (2022-01-26)
 
--------------------
 

	
 
* Fix label printing for 2-up style formatter.
 

	
 
* Allow report output fields to vary based on params.
 

	
 

	
 
0.9.245 (2022-01-18)
 
--------------------
 

	
 
* Be a little smarter about IMAP server disconnect.
 

	
 

	
 
0.9.244 (2022-01-15)
 
--------------------
 

	
 
* Add label handler; refactor label formatting logic.
 

	
 
* Refactor mailmon daemon to ensure only 1 thread per IMAP account.
 

	
 

	
 
0.9.243 (2022-01-13)
 
--------------------
 

	
 
* Add ``AppHandler.make_object()`` convenience method.
 

	
 

	
 
0.9.242 (2022-01-10)
 
--------------------
 

	
 
* Add problem report for stale inventory batches.
 

	
 
* Batch handlers declare versioning is okay for delete action.
 

	
 
* Add explicit Sale, TPR, Current price columns for label batch.
 

	
 
* Add some more logging for mailmon daemon.
 

	
 

	
 
0.9.241 (2022-01-08)
 
--------------------
 

	
 
* Misc. changes for vendor catalog batch and related features.
 

	
 
* Add vendor handler, to better organize catalog parser logic.
 

	
 
* Add ``AppHandler.next_counter_value()`` magic.
 

	
 
* Add nominal support for mysql db backend.
 

	
 
* Refactor some usage of ``cache_model()``.
 

	
 

	
 
0.9.240 (2022-01-06)
 
--------------------
 

	
 
* Remove deprecated use of ``rattail.batch.handlers.get_batch_handler()``.
 

	
 

	
 
0.9.239 (2022-01-03)
 
--------------------
 

	
 
* Fix a couple of dynamic class names, for python2.
 

	
 
* Let datasync consumers declare handler key instead of spec.
 

	
 
* Deprecate the name ``NewDataSyncConsumer`` and update docs.
 

	
 
* Remove usage of ``app.get_designated_import_handler()``.
 

	
 
* Add basic Trainwreck handler.
 

	
 

	
 
0.9.238 (2021-12-29)
 
--------------------
 

	
 
* Remove unused module ``rattail.db.diffs``.
 

	
 
* Move main product lookup logic to products handler.
 

	
 
* Add basic "resolve" support for person, product from new custorder.
 

	
 

	
 
0.9.237 (2021-12-23)
 
--------------------
 

	
 
* Add ``load_object()`` convenience method for AppHandler.
 

	
 
* Make ``config.getint()`` smarter about using default value.
 

	
 
* Add basic "pending product" support for new custorder batch.
 

	
 
* Store copy of msg file just for bouncer, when using.
 

	
 
* Refactor mailmon daemon structure to minimize IMAP connections.
 

	
 
* Add error delay for mailmon, continuum comment for bounce handling.
 

	
 
* Remove support for "daemonize" option in filemon, datasync etc..
 

	
 
* Remove deprecated "dbsync" logic.
 

	
 

	
 
0.9.236 (2021-12-20)
 
--------------------
 

	
 
* Add way to handle an email bounce via filemon.
 

	
 

	
 
0.9.235 (2021-12-20)
 
--------------------
 

	
 
* Set ``app`` attribute for problem report handler, pass to email context.
 

	
 

	
 
0.9.234 (2021-12-20)
 
--------------------
 

	
 
* Make ``app.get_all_import_handlers()`` a bit smarter.
 

	
 

	
 
0.9.233 (2021-12-17)
 
--------------------
 

	
 
* Assign enum and app attrs in datasync consumer constructor.
 

	
 
* Add setting for tailbone grid "sticky headers".
 

	
 
* Expose settings for tailbone vue.js and buefy versions.
 

	
 
* Add basic time-related methods to AppHandler.
 

	
 

	
 
0.9.232 (2021-12-14)
 
--------------------
 

	
 
* Let config know if/when versioning has been enabled.
 

	
 
* Add "missing" tallies for receiving, plus allow un-declare credit.
 

	
 
* Default to false for all config flags in purchase batch handler.
 

	
 
* Stop "requiring" config files by default, it was too problematic.
 

	
 

	
 
0.9.231 (2021-12-11)
 
--------------------
 

	
 
* Fix calculation of seconds since last run for datasync watcher.
 

	
 
* Allow running a problem report just to get results, but avoid email.
 

	
 
* Let progress be passed in late, when running problem report.
 

	
 

	
 
0.9.230 (2021-12-09)
 
--------------------
 

	
 
* Add some purchase order abstractions to purchase batch handler.
 

	
 
* Add default logic for purchase batch ``make_row_from_po_item()``.
 

	
 

	
 
0.9.229 (2021-12-08)
 
--------------------
 

	
 
* Add ``get_problem_report_handler()`` method to AppHandler.
 

	
 
* Use python's ``importlib`` instead of doing our own thing.
 

	
 
* Add ``pre_process_changes()`` and ``post_process_changes()`` for datasync.
 

	
 

	
 
0.9.228 (2021-12-07)
 
--------------------
 

	
 
* Set the ``model`` attr when making new ``AppHandler`` object.
 

	
 

	
 
0.9.227 (2021-12-07)
 
--------------------
 

	
 
* Add some methods/attrs to import handlers, for exposing in web app.
 

	
 
* Overhaul import handler config etc.:
 
  * add ``AppHandler.get_designated_import_handlers()`` and friends
 
  * exit w/ code 1 when command line makes no sense and must print help
 
  * register all core import/export handlers via setup.py and config
 
  * use "handler key" lookup for all core import/export commands
 
  * stop displaying model list in help for import/export command
 
  * migrate datasync "change" permissions, per tailbone changes
 
  * log warning w/ traceback if loading entry point fails
 

	
 
* Mark only certain handlers as being safe for web app.
 

	
 
* Add ``get_active_stores()`` method for app handler.
 

	
 
* Make config object required, for Report constructor.
 

	
 

	
 
0.9.226 (2021-12-03)
 
--------------------
 

	
 
* Make stale timeout configurable, change default for datasync/collectd.
 

	
 
* Use common logic for basic product refresh in label batch.
 

	
 

	
 
0.9.225 (2021-11-29)
 
--------------------
 

	
 
* Allow loading "disabled" datasync profiles, if caller specifies.
 

	
 
* Add ``rattail datasync remove-settings`` command.
 

	
 
* Always "require" config files when making config object.
 

	
 

	
 
0.9.224 (2021-11-28)
 
--------------------
 

	
 
* Add setting for receiving from PO w/ invoice.
 

	
 
* Add some sale pricing logic for custorder batch.
 

	
 
* Include current time in datasync/collectd output.
 

	
 

	
 
0.9.223 (2021-11-27)
 
--------------------
 

	
 
* Only specify interval if we receive one from collectd.
 

	
 
* Add basic stale queue detection for datasync/collectd.
 

	
 

	
 
0.9.222 (2021-11-27)
 
--------------------
 

	
 
* Add workarounds if collectd does not pass env variables (?).
 

	
 

	
 
0.9.221 (2021-11-27)
 
--------------------
 

	
 
* Postpone import in case no sqlalchemy.
 

	
 
* Move datasync command logic to its own module.
 

	
 
* Add ``rattail datasync collectd`` sub-sub-command.
 

	
 

	
 
0.9.220 (2021-11-26)
 
--------------------
 

	
 
* Add way to "require" included config files.
 

	
 
* Only coerce logging timestamps if we have a timezone set.
 

	
 
* Set ``Subcommand.app`` within constructor, for convenience.
 

	
 

	
 
0.9.219 (2021-11-25)
 
--------------------
 

	
 
* Add basic support for receiving from PO with invoice.
 

	
 

	
 
0.9.218 (2021-11-14)
 
--------------------
 

	
 
* Add ``Role.sync_users`` flag and make importer logic honor it.
 

	
 

	
 
0.9.217 (2021-11-11)
 
--------------------
 

	
 
* Add no-op ``parse_date()`` method for ``ExcelReaderXLSX`` class.
 

	
 

	
 
0.9.216 (2021-11-11)
 
--------------------
 

	
 
* Add basic model, status enum for PendingProduct.
 

	
 

	
 
0.9.215 (2021-11-08)
 
--------------------
 

	
 
* Only show POD image if so configured; use "image not found" fallback.
 

	
 
* Add some "case price" logic for custorder batch.
 

	
 
* Add ``get_past_products()`` method for custorder batch handler.
 

	
 
* Add support for finding past items, for new custorder.
 

	
 
* Add basic support for ``invoice2data`` for InvoiceParser.
 

	
 
* Let purchase batch handler declare supported invoice parsers.
 

	
 
* Add simple ``ExcelInvoicParser`` class.
 

	
 

	
 
0.9.214 (2021-11-05)
 
--------------------
 

	
 
* Add ``progress_loop()`` method for app and generic handlers.
 

	
 
* Add "generic" vendor catalog parser.
 

	
 

	
 
0.9.213 (2021-11-04)
 
--------------------
 

	
 
* Add some product info fetchers to custorder batch handler.
 

	
 
* Add setting for "product price may be questionable" for custorders.
 

	
 

	
 
0.9.212 (2021-11-02)
 
--------------------
 

	
 
* Add "did not receive" status for purchase batch rows.
 

	
 
* Add "cannot calculate price" row status for new product batch.
 

	
 

	
 
0.9.211 (2021-10-22)
 
--------------------
 

	
 
* Assign ``app`` and ``model`` attributes when ProblemReport instantiates.
 

	
 

	
 
0.9.210 (2021-10-21)
 
--------------------
 

	
 
* Record 'lastrun' time when mailmon watcher succeeds.
 

	
 

	
 
0.9.209 (2021-10-20)
 
--------------------
 

	
 
* Improve default autocomplete for products.
 

	
 
* Add ``why_not_add_product()`` for custorder batch handler.
 

	
 
* Limit autocomplete results for customer/phone lookup in new custorder.
 

	
 
* Consolidate "new custorder" autocomplete logic for people, customers.
 

	
 
* Restore "pending" customer when unassigning batch contact.
 

	
 
* Add ``add_product()`` method for custorder batch handler.
 

	
 
* Calculate invoice totals when overlaying onto PO for purchase batch.
 

	
 
* Allow for alternate encoding in CSV importers.
 

	
 
* Add basic "price needs confirmation" support for custorder.
 

	
 
* Make ``product`` the first kwarg to ``get_image_url()``.
 

	
 
* Add new 'products.neworder' autocompleter; refactor a bit.
 

	
 

	
 
0.9.208 (2021-10-14)
 
--------------------
 

	
 
* Fix merge logic when employee needs to be transferred to new person.
 

	
 

	
 
0.9.207 (2021-10-14)
 
--------------------
 

	
 
* Invoke auth handler when deleting a user via importer.
 

	
 

	
 
0.9.206 (2021-10-14)
 
--------------------
 

	
 
* Add support for syncing roles, with users and permissions for each.
 

	
 

	
 
0.9.205 (2021-10-13)
 
--------------------
 

	
 
* Try to guess unit or case cost from invoice, if only one is specified.
 

	
 
* Add basic auth handler concept.
 

	
 

	
 
0.9.204 (2021-10-11)
 
--------------------
 

	
 
* Increase precision for cost fields in purchase, batch.
 

	
 

	
 
0.9.203 (2021-10-07)
 
--------------------
 

	
 
* Add ``PendingCustomer`` model, for sake of new custorder workflow.
 

	
 
* Add ``contact_name`` for custorder and batch.
 

	
 
* Add ``update_pending_customer()`` for custorder batch handler.
 

	
 
* Let ``InventoryBatchRow.case_cost`` equal zero.
 

	
 

	
 
0.9.202 (2021-10-06)
 
--------------------
 

	
 
* Add costing batch logic to overlay invoice onto PO data.
 

	
 
* Always add new/dirty first, deleted last, for RattailWatcher.
 

	
 
* Fix bug in products autocomplete.
 

	
 
* Add custorder batch settings to control contact info choice/editing.
 

	
 
* Add "contact update request" workflow for new custorders.
 

	
 

	
 
0.9.201 (2021-10-05)
 
--------------------
 

	
 
* Add ``get_contact_notes()`` method for custorder batch handler.
 

	
 
* Add ``get_contact_phones()`` method for custorder batch handler.
 

	
 
* Add PeopleHandler methods for add/update of phone, email.
 

	
 
* Improve ``get_context_employee()`` for EmploymentHandler.
 

	
 

	
 
0.9.200 (2021-10-03)
 
--------------------
 

	
 
* Remove some assertions which aren't always true...
 

	
 
* Tweak how we call the change recorder.
 

	
 

	
 
0.9.199 (2021-10-03)
 
--------------------
 

	
 
* Add initial version of the "mailmon" daemon.
 

	
 

	
 
0.9.198 (2021-10-01)
 
--------------------
 

	
 
* Add support for Autocomplete Handlers.
 

	
 
* Add config object to ``ChangeRecorder`` class.
 

	
 
* Add simple error logging when bouncer fails to login to server.
 

	
 

	
 
0.9.197 (2021-09-30)
 
--------------------
 

	
 
* Add basic workflow support for invoice costing (purchase) batches.
 

	
 
* Try to parse invoice number from invoice file.
 

	
 

	
 
0.9.196 (2021-09-28)
 
--------------------
 

	
 
* Add ``format_phone_number()`` method to app handler.
 

	
 
* Make ``get_first_email()`` type methods skip invalid addresses.
 

	
 

	
 
0.9.195 (2021-09-27)
 
--------------------
 

	
 
* Add "all" enum values for custorder item status, event.
 

	
 
* Declare model for CustomerOrderItemNote.
 

	
 

	
 
0.9.194 (2021-09-27)
 
--------------------
 

	
 
* Fix bugs in new clientele methods.
 

	
 

	
 
0.9.193 (2021-09-27)
 
--------------------
 

	
 
* Make custorder batch handler responsible for (un)assigning contact.
 

	
 
* Add ``cache_model()`` method to app handler.
 

	
 

	
 
0.9.192 (2021-09-26)
 
--------------------
 

	
 
* Add ``render_quantity()`` method to app handler.
 

	
 
* Always assign ``app`` attribute when instantiating batch handler.
 

	
 
* Assign store, fix sequence when making a new custorder/batch.
 

	
 

	
 
0.9.191 (2021-09-25)
 
--------------------
 

	
 
* Add "custom" customer autocomplete for new custorder handler.
 

	
 
* Add ``render_price()`` method for products handler.
 

	
 

	
 
0.9.190 (2021-09-21)
 
--------------------
 

	
 
* Flush after deleting batch rows.
 

	
 
* Some tweaks for customer orders.
 

	
 

	
 
0.9.189 (2021-09-16)
 
--------------------
 

	
 
* Add "request merge" logic to people handler; send email alert.
 

	
 

	
 
0.9.188 (2021-09-15)
 
--------------------
 

	
 
* Version bump per botched PyPI upload.
 

	
 

	
 
0.9.187 (2021-09-15)
 
--------------------
 

	
 
* Add ``AppHandler.normalize_phone_number()`` method.
 

	
 
* Cache the configured model when making a datasync watcher.
 

	
 

	
 
0.9.186 (2021-09-12)
 
--------------------
 

	
 
* Add way to customize product autocomplete for new custorder.
 

	
 
* Let "has activity" win over "has inventory" for delproduct row status.
 

	
 

	
 
0.9.185 (2021-09-09)
 
--------------------
 

	
 
* Add basic membership handler structure; tweak people, clientele.
 

	
 
* Allow specifying alternate name for association proxy.
 

	
 
* Raise specific error if batch is already executed.
 

	
 
* Make model importer "extensions" more..extensible.
 

	
 

	
 
0.9.184 (2021-09-01)
 
--------------------
 

	
 
* Tweak some customization hooks for custorder batch handler.
 

	
 

	
 
0.9.183 (2021-08-26)
 
--------------------
 

	
 
* Add ``app.get_email_handler()`` method.
 

	
 
* Add more helpful error, if trainwreck import is missing transaction.
 

	
 
* Add merge-related methods to ``PeopleHandler``, plus some docs.
 

	
 
* Add model for ``MergePeopleRequest`` to track people in need of merge.
 

	
 

	
 
0.9.182 (2021-08-04)
 
--------------------
 

	
 
* Ignore ProductPriceAssociation changes for legacy Rattail datasync consumer.
 

	
 
* Fix datasync bug for Rattail -> Rattail "import".
 

	
 

	
 
0.9.181 (2021-08-01)
 
--------------------
 

	
 
* Refactor how we handle product "price xref" fields via datasync.
 

	
 

	
 
0.9.180 (2021-07-27)
 
--------------------
 

	
 
* Improve default subject logic for importer warning emails.
 

	
 
* Add email config for Rattail <-> Rattail data import/export.
 

	
 

	
 
0.9.179 (2021-07-22)
 
--------------------
 

	
 
* Fix ``super()`` parent bug.
 

	
 

	
 
0.9.178 (2021-07-21)
 
--------------------
 

	
 
* Add dict-specific logic for normalizing "local" object.
 

	
 

	
 
0.9.177 (2021-07-21)
 
--------------------
 

	
 
* Raise error if unknown product scanned for inventory.
 

	
 
* Add special datasync logic for product/price associations.
 

	
 

	
 
0.9.176 (2021-07-15)
 
--------------------
 

	
 
* Auto-expand delproduct batch to include unit + all packs.
 

	
 

	
 
0.9.175 (2021-06-18)
 
--------------------
 

	
 
* Fix template context for importer diff warning email preview.
 

	
 
* Exclude ``suggested_price_uuid`` for rattail->rattail Product import.
 

	
 

	
 
0.9.174 (2021-06-18)
 
--------------------
 

	
 
* Let config set flags for product importing.
 

	
 

	
 
0.9.173 (2021-06-18)
 
--------------------
 

	
 
* Avoid blank upc when caching products.
 

	
 
* Lower log level when product not found.
 

	
 

	
 
0.9.172 (2021-06-17)
 
--------------------
 

	
 
* Add ``--no-collect-changes`` arg for importer commands.
 

	
 

	
 
0.9.171 (2021-06-11)
 
--------------------
 

	
 
* Assume empty string means null, in datetime conversion for CSV import.
 

	
 
* Require ``config`` and ``key`` args for ``ConfigProfile`` constructor.
 

	
 
* Accept extra kwargs for ``util.capture_output()``.
 

	
 
* Fix how cost diffs are checked for vendor catalog batch.
 

	
 
* Fix bug when refreshing single label batch row.
 

	
 
* Tweak basic project template, per LOC SMS integration.
 

	
 
* Add ``PeopleHandler.ensure_address()`` method.
 

	
 

	
 
0.9.170 (2021-04-28)
 
--------------------
 

	
 
* Only make batch data dir if it doesn't exist.
 

	
 
* Add "has inventory" status for delete item batch (rows).
 

	
 
* Add ``batch_id_str()`` convenience function.
 

	
 

	
 
0.9.169 (2021-04-27)
 
--------------------
 

	
 
* Allow "batch importers" to avoid collecting changes for processing.
 

	
 

	
 
0.9.168 (2021-04-12)
 
--------------------
 

	
 
* Don't use ``log.warn()``.
 

	
 
* Add ``render_date()`` method for app handler.
 

	
 

	
 
0.9.167 (2021-03-30)
 
--------------------
 

	
 
* Add ``Store.archived`` flag to schema.
 

	
 
* Only cache departments which have a number.
 

	
 
* Freeze version of SQLAlchemy to 1.3.x.
 

	
 

	
 
0.9.166 (2021-03-11)
 
--------------------
 

	
 
* Fix preview for user_feedback emails.
 

	
 
* Add trainwreck alembic files to project manifest.
 

	
 
* Create the ``data/uploads`` folder when making app dir.
 

	
 
* Better handle cost diff when old value is null, for catalog batch.
 

	
 
* Fix how rsync excludes are used as fallback for borg backup.
 

	
 
* Add ``inactivity_months`` field for delete product batch.
 

	
 
* Add misc. more fields to base Trainwreck schema.
 

	
 

	
 
0.9.165 (2021-03-05)
 
--------------------
 

	
 
* Let include/exclude lists differ for rsync vs. borg, in backup command.
 

	
 
* Add ``date_created`` field for "delete product" batch row.
 

	
 

	
 
0.9.164 (2021-03-02)
 
--------------------
 

	
 
* Move some enum values to rattail-onager.
 

	
 
* Add "pending customer orders" status for delete product batch row.
 

	
 

	
 
0.9.163 (2021-02-19)
 
--------------------
 

	
 
* Add trainwreck enum entry for CORE-POS.
 

	
 
* Add "full" support for Trainwreck <-> Trainwreck import/export commands.
 

	
 

	
 
0.9.162 (2021-02-18)
 
--------------------
 

	
 
* Describe execution for some common batches.
 

	
 
* More improvements to "delete products" batch.
 

	
 
* Misc. tweaks for vendor catalog batch.
 

	
 
* Add proper "default" model for Trainwreck.
 

	
 

	
 
0.9.161 (2021-02-10)
 
--------------------
 

	
 
* Relax validation of phone numbers a bit.
 

	
 

	
 
0.9.160 (2021-02-10)
 
--------------------
 

	
 
* Rename tables for purchase batches.
 

	
 
* Add XLSX-flavored ExcelReader class.
 

	
 
* Fix execution description for purchase batches.
 

	
 
* Always use versioning workarounds for vendor catalog batches.
 

	
 

	
 
0.9.159 (2021-02-04)
 
--------------------
 

	
 
* Add ``make_temp_dir()`` and ``make_temp_path()`` for app handlers.
 

	
 
* Rename tables, models for various batches.
 
  
 
* Add ``BatchHandler.is_mutable()``.
 

	
 

	
 
0.9.158 (2021-02-01)
 
--------------------
 

	
 
* Add ``Purchase.id`` column to schema.
 

	
 
* Fix ``PurchaseItem.po_total`` when creating from ordering batch.
 

	
 
* Add ``BatchHandler.describe_execution()`` method.
 

	
 
* Add ``render_currency()`` and ``render_datetime()`` for app handler.
 

	
 
* Misc. reporting tweaks; add "Customer Mailing" sample report.
 

	
 
* Purge things for legacy (jquery) mobile apps.
 

	
 
* Let ``PurchaseBatchHandler`` define which receiving workflows are supported.
 

	
 
* Add ``ProductsHandler.get_image_url()`` etc.
 

	
 

	
 
0.9.157 (2021-01-28)
 
--------------------
 

	
 
* Add basic PeopleHandler, for consistently updating names.
 

	
 

	
 
0.9.156 (2021-01-27)
 
--------------------
 

	
 
* Let win32 share the 'auth' extra.
 

	
 

	
 
0.9.155 (2021-01-27)
 
--------------------
 

	
 
* Initial support for adding items to, executing customer order batch.
 

	
 
* Add simple ``rattail checkdb`` command.
 

	
 

	
 
0.9.154 (2021-01-25)
 
--------------------
 

	
 
* Add some default logic to ``FromFile`` importer base.
 

	
 
* Tweak borg requirement for 'backup' extra.
 

	
 
* Add ``AppHandler.get_report_handler()`` and improve related docs a bit.
 

	
 
* Add feature to generate new features...
 

	
 
* Add basic dev bootstrap for new projects.
 

	
 
* Add new batch type for deleting products.
 

	
 
* Show import vs. export direction in warnings/diff email.
 

	
 
* Set ``self.model`` when constructing new Importer.
 

	
 
* Avoid meaningless flushes within importer main loop.
 

	
 
* Don't use list for ``Product.shopfoo_product`` type relationships.
 

	
 
* Set ``self.model`` when constructing a DataSyncConsumer.
 

	
 
* Add generic ``FromRattailConsumer`` base class for datasync.
 

	
 
* Add "Units of Measure" table, and mapping logic in products handler.
 

	
 
* Add ``webapi.conf`` file for use with ``rattail make-config``.
 

	
 
* Fix some discrepancies in primary vs. version table schema.
 

	
 

	
 
0.9.153 (2020-12-15)
 
--------------------
 

	
 
* Add basic model, importer for IFPS PLU Codes.
 

	
 

	
 
0.9.152 (2020-12-04)
 
--------------------
 

	
 
* Add ``phone_number_is_invalid()`` method to app handler.
 

	
 
* Add basic structure for "Board Handler" feature.
 

	
 
* Add 'datadir' to sample config files.
 

	
 

	
 
0.9.151 (2020-12-01)
 
--------------------
 

	
 
* Add new "app handler" concept, w/ handlers for employment, clientele.
 

	
 

	
 
0.9.150 (2020-11-24)
 
--------------------
 

	
 
* Add vendor catalog parser for Equal Exchange.
 

	
 
* Refresh product record, when attaching new price via importer.
 

	
 

	
 
0.9.149 (2020-10-14)
 
--------------------
 

	
 
* Simplify how certain "list" data is cleared, when importing to Rattail.
 

	
 

	
 
0.9.148 (2020-10-13)
 
--------------------
 

	
 
* Log warning instead of assertion error, if runas_user doesn't exist.
 

	
 
* Stop trying to use win32 api to know "default config paths".
 

	
 
* Stop creating separate 'batch' folder for ``rattail make-appdir``.
 

	
 
* Allow datasync to export to rattail but *not* record changes.
 

	
 

	
 
0.9.147 (2020-10-02)
 
--------------------
 

	
 
* Fix how record associations are removed for rattail importing.
 

	
 
* Load "runas user" into current session, for X -> Rattail importers.
 

	
 
* Make sure model extension tables are eagerly joined for Rattail importing.
 

	
 

	
 
0.9.146 (2020-09-24)
 
--------------------
 

	
 
* Add methods to create new sheet, and toggle grid lines for ExcelWriter.
 

	
 
* Add "summary" sheet to Excel-based reports.
 

	
 

	
 
0.9.145 (2020-09-22)
 
--------------------
 

	
 
* Use static default timezone for new 'fabric' project.
 

	
 
* Add more flexible "extensions" mechanism for Rattail model importers.
 

	
 
* Turn on display of rattail deprecation warnings by default.
 

	
 

	
 
0.9.144 (2020-09-19)
 
--------------------
 

	
 
* Small tweaks for default config in 'fabric' projects.
 

	
 
* Allow overriding column header labels when writing Excel file.
 

	
 
* Add ``makedirs`` kwarg for ``Batch.absolute_filepath()`` method.
 

	
 
* Add batch handler methods for writing, updating from worksheet.
 

	
 
* Give importer diff emails an automatic default subject.
 

	
 
* Add ``--no-password`` flag for ``rattail make-user`` command.
 

	
 

	
 
0.9.143 (2020-09-16)
 
--------------------
 

	
 
* Always create 'data' dir when making app dir.
 

	
 
* Add support for generating a 'fabric' project.
 

	
 

	
 
0.9.142 (2020-09-14)
 
--------------------
 

	
 
* Add basic handler/template for generating new custom projects.
 

	
 

	
 
0.9.141 (2020-09-02)
 
--------------------
 

	
 
* Ignore bad UPC when reading products from file for label batch.
 

	
 
* Add ``Product.average_weight`` to schema.
 

	
 

	
 
0.9.140 (2020-08-21)
 
--------------------
 

	
 
* Add ``--skip-if-empty`` flag for ``rattail run-n-mail`` command.
 

	
 
* Add base classes for Rattail -> Rattail (local) imports.
 

	
 
* Always try to set ``runas_user`` etc. when making an importer.
 

	
 
* Allow override of header row for CSV exporters.
 

	
 
* Add base data model for "shopfoo" pattern.
 

	
 
* Add base pattern logic for Shopfoo data export.
 

	
 

	
 
0.9.139 (2020-08-17)
 
--------------------
 

	
 
* Add ``rattail version-check`` command, for consistency checks.
 

	
 

	
 
0.9.138 (2020-08-13)
 
--------------------
 

	
 
* Include alt code lookup for inventory "quick entry" logic.
 

	
 
* Fix how we obtain local system title for importers.
 

	
 

	
 
0.9.137 (2020-08-10)
 
--------------------
 

	
 
* Add ``PricingBatchRow.old_true_margin`` column to schema.
 

	
 
* Tweak how/when we set "manually priced" status for pricing batch rows.
 

	
 
* Add basic TXT template for user feedback emails.
 

	
 
* Grow column for permission name.
 

	
 

	
 
0.9.136 (2020-08-09)
 
--------------------
 

	
 
* Always import the data model module early, when running commands.
 

	
 
* Add new base classes for customer order/item models.
 

	
 
* Add data models for "customer order" batches.
 

	
 
* Add ``first_email()``, ``first_phone()`` etc. for ContactMixin.
 

	
 
* Fix some encoding bugs on python 2.
 

	
 
* Add association proxy for ``Employee.users``.
 

	
 

	
 
0.9.135 (2020-07-30)
 
--------------------
 

	
 
* Add base classes for "purging" subcommands.
 

	
 

	
 
0.9.134 (2020-07-29)
 
--------------------
 

	
 
* Add ``BatchHandler.delete_extra_data()`` method.
 

	
 
* Add ``BatchHandler.do_delete()`` method.
 

	
 

	
 
0.9.133 (2020-07-29)
 
--------------------
 

	
 
* Be smarter about deleting rows, when deleting batch.
 

	
 

	
 
0.9.132 (2020-07-28)
 
--------------------
 

	
 
* Tweak logic for purging batches to avoid warnings, duplicate progress.
 

	
 

	
 
0.9.131 (2020-07-26)
 
--------------------
 

	
 
* Grow ``Product.item_id`` to allow 50 chars.
 

	
 
* Don't create empty department, when importing subdepartment.
 

	
 
* Remove unused "fablib" line from manifest.
 

	
 
* Let config define arbitrary kwargs for datasync watcher.
 

	
 
* Add ``can_delete_object()`` method for importers.
 

	
 
* Add ``cache_model()`` convenience method for problem reports.
 

	
 
* Log info instead of debug, to show count of problems found.
 

	
 

	
 
0.9.130 (2020-06-18)
 
--------------------
 

	
 
* Remove 'fixture' use within tests; plus fix some tests.
 

	
 
* Add ``email_output()`` method for report handler, plus common template.
 

	
 

	
 
0.9.129 (2020-05-28)
 
--------------------
 

	
 
* Add ``require`` kwarg for ``Person.only_customer()`` method.
 

	
 
* Add some indexes, to optimize profile view.
 

	
 

	
 
0.9.128 (2020-05-20)
 
--------------------
 

	
 
* Add "shelved" flag for pricing batches.
 

	
 
* Add "safe" param logic for decimal report params.
 

	
 

	
 
0.9.127 (2020-04-17)
 
--------------------
 

	
 
* Add support for extra header rows, for Excel reader.
 

	
 
* Add generic ``FromFile`` importer base class.
 

	
 
* Change method call to allow for simpler signature.
 

	
 

	
 
0.9.126 (2020-04-06)
 
--------------------
 

	
 
* Fix how we assign ``Purchase.total`` when executing an ordering batch.
 

	
 
* Improve logic for making new Receiving batch from PO.
 

	
 
* Copy PO total from purchase object, when making new receiving batch.
 

	
 
* Add ``--borg-tag`` arg for ``rattail backup`` command.
 

	
 
* Add ``Product.get_default_pack_item()`` convenience method.
 

	
 
* Add ``Role.notes`` field to schema.
 

	
 
* Add way for report to provide available "choices" for any param.
 

	
 
* Add ``get_output_filename()`` method for ToFile exporters.
 

	
 
* Move most of inventory batch logic into the handler (from Tailbone).
 

	
 
* Add setting to disable old/legacy jQuery mobile app.
 

	
 

	
 
0.9.125 (2020-03-18)
 
--------------------
 

	
 
* Sever the "backref" tie for ``Person._customers``.
 

	
 
* Add setting for display of POD images in Tailbone.
 

	
 
* Add ``revoke_permission()`` convenience auth function.
 

	
 
* Fix the Subdepartment importer per real-time datasync use.
 

	
 
* Stash a reference to handler instance, when creating datasync consumer.
 

	
 
* Add "customer fields" for Person importer.
 

	
 
* Add ``ContactMixin`` for Rattail importers; use with Customer and Person.
 

	
 
* Declare the Member model to be a "contact" for related magic.
 

	
 
* Add version importers for member data.
 

	
 
* Add ``Member.number`` to schema.
 

	
 
* Add ``Customer.first_person()`` convenience method.
 

	
 

	
 
0.9.124 (2020-03-11)
 
--------------------
 

	
 
* Add logic for Order Form worksheet, in purchase batch handler.
 

	
 

	
 
0.9.123 (2020-03-05)
 
--------------------
 

	
 
* Add ``refresh_many()`` method for batch handlers.
 

	
 
* Raise explicit error in ``data_diffs()`` to tell which side is missing data.
 

	
 
* Add default implementation logic for ``Importer.cache_local_data()``.
 

	
 
* Fix some math/logic for calculating "pending" amounts in purchase batch.
 

	
 

	
 
0.9.122 (2020-03-02)
 
--------------------
 

	
 
* Grow ``item_entry`` field for batches, to accommodate product_uuid.
 

	
 

	
 
0.9.121 (2020-03-01)
 
--------------------
 

	
 
* Stop breaking on bad input, for purchase batch ``update_row_quantity()``.
 

	
 
* Delete each row in batch, one by one, when deleting batch.
 

	
 
* Add ``Employee.sorted_history()`` and improve ``get_current_history()``.
 

	
 
* Implement ``GPC.__lt__()`` rich comparison.
 

	
 

	
 
0.9.120 (2020-02-26)
 
--------------------
 

	
 
* Add ``update_row_quantity()``, ``order_row()`` methods for purchase batch handler.
 

	
 
* Update the *calculated* PO total when removing row from ordering batch.
 

	
 
* Add 60-second delay for "datasync wait" logic in Luigi overnight tasks.
 

	
 

	
 
0.9.119 (2020-02-21)
 
--------------------
 

	
 
* Tweak how output of ``rattail runsql`` command is handled.
 

	
 

	
 
0.9.118 (2020-02-19)
 
--------------------
 

	
 
* Let config define ``--keep-*`` args for ``borg prune`` command.
 

	
 
* Use progress when writing rows to Excel.
 

	
 

	
 
0.9.117 (2020-02-12)
 
--------------------
 

	
 
* Add new ``ProblemReportEmail`` base class, for simpler email previews.
 

	
 
* Add "current price" to schema for pricing batch; populate on refresh.
 

	
 
* Add support for newer file format, in KeHE invoice parser.
 

	
 

	
 
0.9.116 (2020-02-03)
 
--------------------
 

	
 
* Remove ``__future__`` imports from project scaffold template.
 

	
 
* Fix some password prompts, for python 3.
 

	
 
* Add some custom tables, model importers, web views for new project template.
 

	
 
* Don't consult the DB when fetching configured enum module.
 

	
 

	
 
0.9.115 (2020-01-28)
 
--------------------
 

	
 
* Allow populating a new pricing batch from products with "SRP breach".
 

	
 
* Remove versioning workarounds for core batch handlers.
 

	
 
* Add "invalid address" flags for primary contact types.
 

	
 
* Add "price breaches SRP" status for pricing batch rows.
 

	
 

	
 
0.9.114 (2020-01-20)
 
--------------------
 

	
 
* Add awareness of default "importer" batch handler.
 

	
 
* Explicitly avoid data versioning when executing import/export batch.
 

	
 
* Improve "batch" awareness for datasync queue logic.
 

	
 
* Add ``ProblemReportHandler.progress_loop()`` convenience method.
 

	
 

	
 
0.9.113 (2020-01-07)
 
--------------------
 

	
 
* Fix how "current" price is set for Product importer.
 

	
 

	
 
0.9.112 (2020-01-06)
 
--------------------
 

	
 
* Fix handling of tpr/sale prices for rattail Product datasync.
 

	
 

	
 
0.9.111 (2020-01-06)
 
--------------------
 

	
 
* Remove TPR, sale price refs from *simple* Product importer fields.
 

	
 

	
 
0.9.110 (2020-01-06)
 
--------------------
 

	
 
* Add ``Product.tpr_price`` and ``sale_price``, tweak model importer.
 

	
 

	
 
0.9.109 (2020-01-02)
 
--------------------
 

	
 
* Mark a Product as dirty, when ProductCost is deleted.
 

	
 
* Remove cascade settings for ``Person._customers`` relationship.
 

	
 

	
 
0.9.108 (2019-12-19)
 
--------------------
 

	
 
* Allow config to define datasync "batch" size limit.
 

	
 

	
 
0.9.107 (2019-12-02)
 
--------------------
 

	
 
* Add logic for updating row invoice cost/totals for receiving batch.
 

	
 
* Add catalog unit cost, confirmation flags for receiving batch rows.
 

	
 
* Add logic for updating catalog cost for receiving batch row.
 

	
 
* Add ``receiving_complete`` flag for PurchaseBatch.
 

	
 

	
 
0.9.106 (2019-11-15)
 
--------------------
 

	
 
* Add ``quick_entry()`` method signature for batch handlers.
 

	
 
* Try to set creator of new batch, if user is specified.
 

	
 
* Try to assign configured store when making new purchase batch.
 

	
 
* Add ``get_eligible_purchases()`` method for 'purchase' batch handler.
 

	
 
* Add proper "quick entry" logic for purchase batch.
 

	
 
* Fix some receiving row logic when null quantities present.
 

	
 

	
 
0.9.105 (2019-11-08)
 
--------------------
 

	
 
* Cascade delete for ProductStoreInfo.
 

	
 
* Add ``rattail make-batch`` command.
 

	
 
* Add ``finalize_session()`` convenience method for Subcommand.
 

	
 

	
 
0.9.104 (2019-10-30)
 
--------------------
 

	
 
* Fix issue with import diff email template, when extra fields present.
 

	
 
* Only retain "used importers" if instructed, in import handler.
 

	
 

	
 
0.9.103 (2019-10-25)
 
--------------------
 

	
 
* Add ``rattail purge-versions`` command.
 

	
 

	
 
0.9.102 (2019-10-23)
 
--------------------
 

	
 
* Add setting to "force unit item" for inventory batch.
 

	
 
* Add "generic" sequence for customer numbers.
 

	
 

	
 
0.9.101 (2019-10-15)
 
--------------------
 

	
 
* Add way for callers to assign "comment" for versioning transaction.
 

	
 
* Add ``-m`` flag option for ``rattail import-versions --comment``.
 

	
 

	
 
0.9.100 (2019-10-12)
 
--------------------
 

	
 
* Improve importer logic for "Global" objects, for sake of datasync.
 

	
 
* Add generic JSON ``params`` field to core batch schema.
 

	
 
* Make pricing batch population more robust for UPC/product.
 

	
 
* Add unit cost diff percentage for vendor catalog batch rows.
 

	
 
* Add "preferred vendor" flags for vendor catalog batch rows.
 

	
 
* Add unit cost diff, related status for vendor invoice batch rows.
 

	
 
* Add initial "problem report" framework.
 

	
 
* Use OrderedDict for configured db engines.
 

	
 

	
 
0.9.99 (2019-10-07)
 
-------------------
 

	
 
* Tweak Luigi summary filter logic for detecting "all good" message.
 

	
 
* Add ``local_only`` flag for Person, User, plus "Global" importers.
 

	
 

	
 
0.9.98 (2019-10-04)
 
-------------------
 

	
 
* Add ``remove_email()`` etc. for ContactMixin.
 

	
 
* Provide default/fallback node title for importers' sake.
 

	
 

	
 
0.9.97 (2019-10-02)
 
-------------------
 

	
 
* Declare 'sys' to be a built-in mysql db name, for ``rattail backup``.
 

	
 
* Add ``--groups`` arg to ``rattail make-user`` command.
 

	
 
* Add ``WarnSummaryIfProblems`` logging filter for Luigi.
 

	
 
* Provide default app title when generating mail.
 

	
 
* Convert command output to Unicode, for ``run-n-mail``.
 

	
 

	
 
0.9.96 (2019-09-24)
 
-------------------
 

	
 
* Add ``util.simple_error()`` for basic rendering of error message.
 

	
 
* Add ``default_importers_only`` flag for datasync consumers.
 

	
 
* Add progress support for some Excel writer methods.
 

	
 

	
 
0.9.95 (2019-09-18)
 
-------------------
 

	
 
* Strip whitespace from fieldnames by default, for ``ExcelReader``.
 

	
 
* Don't try to locate product if empty "entry" provided, for batch handlers.
 

	
 
* Add ``get_product_by_scancode()`` API function; leverage in batch handler.
 

	
 

	
 
0.9.94 (2019-09-17)
 
-------------------
 

	
 
* Add ``--dump-tables`` arg for ``rattail backup`` command.
 

	
 
* Add support for Borg backups, in ``rattail backup``.
 

	
 
* Add 'backup' requirements extra.
 

	
 
* Allow config to define where db dumps go for backup.
 

	
 
* Retain reference to "used" importer instances, when running via handler.
 

	
 
* Add ``ImportHandler.extra_importer_kwargs`` and associated logic.
 

	
 

	
 
0.9.93 (2019-09-10)
 
-------------------
 

	
 
* Add basis for a ``trainwreck prune`` command, to prune old data.
 

	
 

	
 
0.9.92 (2019-09-09)
 
-------------------
 

	
 
* Make sure new projects declare support for Python 3 (only).
 

	
 
* Remove some web templates from project scaffold.
 

	
 
* Make the Customer model use ContactMixin.
 

	
 
* Preserve "zeroes" when converting handheld batch to inventory batch.
 

	
 
* Check existence of ``psql`` command before using it, for backups.
 

	
 

	
 
0.9.91 (2019-08-04)
 
-------------------
 

	
 
* Add ``ContactMixin`` class to consolidate handling of phone/email/address.
 

	
 

	
 
0.9.90 (2019-07-30)
 
-------------------
 

	
 
* Add "from same to same" importer base class.
 

	
 
* Add basic support for Trainwreck <-> Trainwreck import/export.
 

	
 
* Add support for ``rattail export-csv`` command.
 

	
 
* Change progress message when caching local data for importer.
 

	
 
* Add basic support for ``rattail import-csv`` command.
 

	
 

	
 
0.9.89 (2019-07-13)
 
-------------------
 

	
 
* Add ``Employee.only_person()`` convenience method.
 

	
 

	
 
0.9.88 (2019-07-09)
 
-------------------
 

	
 
* Add ``RattailConfig.datadir()`` convenience method.
 

	
 
* Stop using deprecated RattailConfig methods.
 

	
 
* Fix main version query, to remove duplicate results.
 

	
 

	
 
0.9.87 (2019-06-16)
 
-------------------
 

	
 
* Allow session to define client IP address for data versioning.
 

	
 

	
 
0.9.86 (2019-06-13)
 
-------------------
 

	
 
* Copy item ID and UPC when refreshing row for pricing batch.
 

	
 
* Fix WinCE batch file parsing per python 3.
 

	
 
* Add ``po_total_calculated`` columns for purchasing batch, row.
 

	
 

	
 
0.9.85 (2019-05-09)
 
-------------------
 

	
 
* Add ``cache_model()`` convenience method for reports.
 

	
 

	
 
0.9.84 (2019-05-09)
 
-------------------
 

	
 
* Store report type key and params when generating new report.
 

	
 
* Add support for "totals" row to basic Excel report output.
 

	
 

	
 
0.9.83 (2019-05-07)
 
-------------------
 

	
 
* Add generic ``ExcelReport`` base class.
 

	
 

	
 
0.9.82 (2019-05-05)
 
-------------------
 

	
 
* Add basic support for custom number formats, in Excel writer.
 

	
 

	
 
0.9.81 (2019-04-30)
 
-------------------
 

	
 
* Add ``--kwargs`` argument for batch execution command line.
 

	
 

	
 
0.9.80 (2019-04-26)
 
-------------------
 

	
 
* Remove redundant setup when populating vendor catalog batch.
 

	
 
* Assign continuum versioning author when executing any batch.
 

	
 

	
 
0.9.79 (2019-04-25)
 
-------------------
 

	
 
* Comment out app_title in base_meta for new project template.
 

	
 
* Add 'newproduct' batch for importing new items from e.g. spreadsheet.
 

	
 
* Add "allowance" fields for Vendor Catalog batches.
 

	
 
* Add vendor item code, family code etc. for pricing batch.
 

	
 
* Add generic "products" batch type, can convert to labels or pricing batch.
 

	
 
* Fix data encoding when writing to progress socket for python3.
 

	
 

	
 
0.9.78 (2019-04-12)
 
-------------------
 

	
 
* Add ``Employee.get_current_history()`` convenience method.
 

	
 

	
 
0.9.77 (2019-04-04)
 
-------------------
 

	
 
* Let handler create importers for datasync consumer.
 

	
 

	
 
0.9.76 (2019-04-04)
 
-------------------
 

	
 
* Make sure importer knows "direction" when used within datasync.
 

	
 

	
 
0.9.75 (2019-04-03)
 
-------------------
 

	
 
* Remove deprecated web menu template in new project template.
 

	
 
* Set importer ``direction`` early, in case ``supported_fields`` needs it.
 

	
 

	
 
0.9.74 (2019-04-02)
 
-------------------
 

	
 
* Use "shipped" instead of "ordered" for truck dump child row "claims".
 

	
 
* Use shipped instead of ordered, for setting purchase batch row status.
 

	
 

	
 
0.9.73 (2019-03-29)
 
-------------------
 

	
 
* Some improvements to basic project template.
 

	
 
* Add new 'reporting' mini-framework.
 

	
 
* Allow "loose" product matching between truck dump parent and child.
 

	
 
* Add ``can_declare_credit()`` method for purchase batch handler.
 

	
 

	
 
0.9.72 (2019-03-21)
 
-------------------
 

	
 
* Add simple ``JSONTextDict`` data type for SQLAlchemy columns.
 

	
 

	
 
0.9.71 (2019-03-14)
 
-------------------
 

	
 
* Add ``BatchHandler.do_remove_row()`` caller method.
 

	
 
* Omit deprecated kwarg for ``session.is_modified()``.
 

	
 
* Add ``direction`` attribute for ImportHandler and Importer.
 

	
 
* Add debug logging when "stale changes" detected for datasync.
 

	
 
* Add ``declare_credit()`` method for purchase batch handler.
 

	
 

	
 
0.9.70 (2019-03-11)
 
-------------------
 

	
 
* Fix progress bar construction (for real).
 

	
 
* Add ``percentage`` kwarg to ``pricing.gross_margin()`` function.
 

	
 
* Add ``ProductVolatile`` model, for "volatile" product attributes.
 

	
 
* Tweak ``pretty_hours()`` to better handle negative values.
 

	
 

	
 
0.9.69 (2019-03-08)
 
-------------------
 

	
 
* Fix logic for calculating "credit total".
 

	
 
* Add "calculated" invoice total for receiving row, batch.
 

	
 
* Fix how some "receive row" logic worked, for aggregated product rows.
 

	
 
* Expand UPC-E to UPC-A when doing product receiving lookup.
 

	
 

	
 
0.9.68 (2019-03-07)
 
-------------------
 

	
 
* Fix progress bar error, as of ``progress==1.5`` package.
 

	
 

	
 
0.9.67 (2019-03-06)
 
-------------------
 

	
 
* Tweak how we create config parser object, for python 3 vs. 2.
 

	
 
* Refresh receiving batch after "auto-receiving" all items.
 

	
 
* Add ``mark_complete()`` and ``mark_incomplete()`` methods for batch handler.
 

	
 
* Add some basic docs for "product receiving" features.
 

	
 
* Add first implementation of ``receive_row()`` for purchase batch handler.
 

	
 
* Add "truck dump status" fields for purchase batch, row.
 

	
 
* Make "auto receive all" logic smarter, to handle split cases.
 

	
 
* Don't raise error if "removing" a batch row which was already "removed".
 

	
 
* Auto-create "missing" credits for product not accounted for, when receiving.
 

	
 

	
 
0.9.66 (2019-02-25)
 
-------------------
 

	
 
* Tweak CSV parsing for new handheld batch, per python3.
 

	
 

	
 
0.9.65 (2019-02-22)
 
-------------------
 

	
 
* Aggregate when adding truck dump child row already present in parent.
 

	
 
* Clean up Rattail <-> Rattail import/export handlers a bit.
 

	
 
* Add ``Customer.add_mailing_address()`` convenience method.
 

	
 
* Add ``CustomerNote`` and ``Customer.notes``.
 

	
 
* Add setting for whether 'vendor' fields should use autocomplete or dropdown.
 

	
 

	
 
0.9.64 (2019-02-14)
 
-------------------
 

	
 
* Refactor datasync consumer logic, for prettier email and retry support.
 

	
 
* Remove some old handler-less logic for emails.
 

	
 
* Add ``include_fields()`` and ``exclude_fields()`` importer methods.
 

	
 

	
 
0.9.63 (2019-02-12)
 
-------------------
 

	
 
* Fix help bug for ``export-rattail`` command.
 

	
 
* Add ``time.first_of_year()`` convenience function.
 

	
 
* Add ``--year`` arg for importer subcommands.
 

	
 
* Add convenience method ``Person.only_customer()``.
 

	
 

	
 
0.9.62 (2019-02-08)
 
-------------------
 

	
 
* Allow suppression of stderr from ``pip freeze`` when running upgrade.
 

	
 
* Introduce some new logic for "children first" truck dump receiving.
 

	
 
* Don't overwrite PO, invoice cost for purchase batch row upon refresh.
 

	
 

	
 
0.9.61 (2019-02-05)
 
-------------------
 

	
 
* Add "node title" app setting.
 

	
 
* Add support for importing member, member contact data.
 

	
 
* Add ``config.node_type()`` convenience method.
 

	
 
* Add app setting for background color.
 

	
 

	
 
0.9.60 (2019-01-31)
 
-------------------
 

	
 
* Improve logic for default ``repr(ModelBase)`` output.
 

	
 

	
 
0.9.59 (2019-01-28)
 
-------------------
 

	
 
* Tweak logic for fetching "runas user".
 

	
 

	
 
0.9.58 (2019-01-24)
 
-------------------
 

	
 
* Fix invoice parser for Albert's, per python3.
 

	
 

	
 
0.9.57 (2019-01-22)
 
-------------------
 

	
 
* Tweak contrib UNFI invoice parser, for python3 support.
 

	
 

	
 
0.9.56 (2019-01-21)
 
-------------------
 

	
 
* Accept hours as decimal instead of delta, for ``util.pretty_hours()``.
 

	
 
* Add python3 support for contrib KeHE vendor invoice parser.
 

	
 
* Tweak some label printing logic to support python 3.
 

	
 

	
 
0.9.55 (2019-01-17)
 
-------------------
 

	
 
* Add app settings for restart commands, for datasync/filemon daemons.
 

	
 
* Add generic ``rattail run-n-mail`` command.
 

	
 

	
 
0.9.54 (2019-01-10)
 
-------------------
 

	
 
* Add ``extra_data`` text column to all batch tables.
 

	
 
* Always refresh TD parent batch row, when transforming pack to unit.
 

	
 

	
 
0.9.53 (2019-01-08)
 
-------------------
 

	
 
* Grow markup field for pricing batch rows, ever so slightly.
 

	
 

	
 
0.9.52 (2019-01-05)
 
-------------------
 

	
 
* Always set "runas" user when making DB session for command.
 

	
 

	
 
0.9.51 (2019-01-01)
 
-------------------
 

	
 
* Tweak logging if duplicate keys found when making cache.
 

	
 
* Add basic Member table.
 

	
 

	
 
0.9.50 (2018-12-19)
 
-------------------
 

	
 
* Fix product version schema, for last migration.
 

	
 

	
 
0.9.49 (2018-12-19)
 
-------------------
 

	
 
* Grow ``Product.uom_abbreviation`` field to allow 10 chars.
 

	
 

	
 
0.9.48 (2018-12-19)
 
-------------------
 

	
 
* Add basic support for making new pricing batch from input file.
 

	
 
* Add subdepartment to core "product" batch row mixin schema.
 

	
 
* Add "label profile" field for label batches.
 

	
 
* Add way to declare label type for new label batch from data file.
 

	
 

	
 
0.9.47 (2018-12-12)
 
-------------------
 

	
 
* Refactor how we read some config values for datasync.
 

	
 

	
 
0.9.46 (2018-12-11)
 
-------------------
 

	
 
* Fix population logic when making batch from file via filemon.
 

	
 

	
 
0.9.45 (2018-12-05)
 
-------------------
 

	
 
* Add ``Object.setdefault()`` method.
 

	
 
* Add way to extend available types, for ``rattail make-config``.
 

	
 
* Add "sync me" flag to LabelProfile model, honor it within importers.
 

	
 
* Overhaul datasync consumer thread logic a bit.
 

	
 
* Add clue for checking perms, when pruning non-existing filemon folder.
 

	
 

	
 
0.9.44 (2018-12-02)
 
-------------------
 

	
 
* Add some default magic for importers reading from CSV file.
 

	
 
* Coerce generic import batch row keys to string, for description.
 

	
 
* Add ``rattail datasync check-watchers`` subcommand.
 

	
 
* Add basic "min % diff" logic for pricing batches.
 

	
 
* Grow some "margin" columns in pricing batch row table.
 

	
 
* Allow override of decimal places when converting hours.
 

	
 
* Tweak some label batch logic per python3.
 

	
 
* Add ``old_price_margin`` column for pricing batch rows.
 

	
 
* Update sample config and new project template.
 

	
 

	
 
0.9.43 (2018-11-19)
 
-------------------
 

	
 
* Tweak how we assign 'runas' user for commands.
 

	
 

	
 
0.9.42 (2018-11-19)
 
-------------------
 

	
 
* Add ``rattail purge-batches`` command.
 

	
 
* Add ``Customer.wholesale`` flag.
 

	
 
* Add ``suggested_price``, ``margin_diff``, ``price_diff_percent`` for pricing
 
  batch rows.
 

	
 

	
 
0.9.41 (2018-11-14)
 
-------------------
 

	
 
* Grow column for ``Role.name`` to 100 chars.
 

	
 
* Add "suggested price" hack for old-style rattail -> rattail datasync.
 

	
 

	
 
0.9.40 (2018-11-09)
 
-------------------
 

	
 
* Add index for trainwreck ``Transaction.receipt_number``.
 

	
 

	
 
0.9.39 (2018-11-09)
 
-------------------
 

	
 
* Add ``product_suggested_price`` field for ProductPrice model importer.
 

	
 

	
 
0.9.38 (2018-11-08)
 
-------------------
 

	
 
* Detect non-numeric entry when locating row for purchase batch.
 

	
 
* Add setup/teardown to handler, for batch populate.
 

	
 
* Add "suggested price" features for Product model, importer.
 

	
 

	
 
0.9.37 (2018-11-07)
 
-------------------
 

	
 
* Add "current discount" fields for ``ProductCost`` model.
 

	
 
* Add "true" unit cost, margin to pricing batch rows.
 

	
 
* Add client IP address to user feedback email.
 

	
 

	
 
0.9.36 (2018-10-25)
 
-------------------
 

	
 
* Add simple ``datasync check`` command.
 

	
 

	
 
0.9.35 (2018-10-24)
 
-------------------
 

	
 
* Add ``required`` flag for app settings.
 

	
 
* Add ``transform_pack_to_unit()`` method for purchase batch handler.
 

	
 

	
 
0.9.34 (2018-10-19)
 
-------------------
 

	
 
* Preserve "raw" data record when parsing KeHE invoice file.
 

	
 
* Add probe status for "critical low temp".
 

	
 

	
 
0.9.33 (2018-10-17)
 
-------------------
 

	
 
* Use builtin ``csv.DicReader`` if running on python3.
 

	
 
* Add ``cache_permissions()`` function to ``db.auth`` module.
 

	
 
* Add link to the upgrade, within upgrade success/failure emails.
 

	
 

	
 
0.9.32 (2018-10-11)
 
-------------------
 

	
 
* Fix "off by one" error in SIL writer.
 

	
 
* Use built-in ``csv.writer`` instead of custom one, for python3.
 

	
 

	
 
0.9.31 (2018-10-09)
 
-------------------
 

	
 
* Never record change for ``EmailAttempt``.
 

	
 
* Move the ``filename_column()`` function to ``rattail.db.core`` module.
 

	
 
* Refactor SIL writer a bit, per newer conventions.
 

	
 

	
 
0.9.30 (2018-10-03)
 
-------------------
 

	
 
* Add enum for tempmon disk type.
 

	
 
* Rewrite truck dump claiming logic for purchase batch.
 

	
 

	
 
0.9.29 (2018-09-26)
 
-------------------
 

	
 
* Don't allow NULL for batch ``complete`` flags.
 

	
 
* Add ``item_entry`` field to all product-related batch rows.
 

	
 
* Try to locate product by vendor item code before alt code, for purchase batch.
 

	
 
* Add ``locate_product_for_entry()`` method for purchase batch handler.
 

	
 
* Add basic "out of stock" awareness for vendor invoices, receiving.
 

	
 

	
 
0.9.28 (2018-09-20)
 
-------------------
 

	
 
* Let caller decide whether to auto-create departments for category import.
 

	
 

	
 
0.9.27 (2018-09-20)
 
-------------------
 

	
 
* Make sure we create unit item before the pack which references it.
 

	
 
* Add ``locate_product()`` method for 'purchase' batch handler.
 

	
 
* Prefer truck dump child row over parent, wrt case_quantity.
 

	
 
* Add app setting to show/hide product images for mobile purchasing.
 

	
 
* Add new "partially claimed" status for truck dump parent batch rows.
 

	
 

	
 
0.9.26 (2018-08-24)
 
-------------------
 

	
 
* Add new "quick receive" settings for mobile receiving.
 

	
 
* Increase size of ``Category.code`` to 20 chars.
 

	
 

	
 
0.9.25 (2018-08-14)
 
-------------------
 

	
 
* Various tweaks for refresh of receiving batch.
 

	
 
* Add ``PurchaseBatchRowClaim.is_empty()`` convenience method.
 

	
 
* Add backref for ``ProductCost._vendor_catalog_rows``.
 

	
 
* Add ``OvernightTask`` for use with overnight automation via Luigi.
 

	
 
* Add app setting for mobile products "quick lookup".
 

	
 
* Add support for ``product_item_id`` field in ProductCost importer.
 

	
 
* Claim 'expired' credits when adding child invoice to truck dump parent.
 

	
 

	
 
0.9.24 (2018-07-31)
 
-------------------
 

	
 
* Configure data versioning within ``make_config()``.
 

	
 

	
 
0.9.23 (2018-07-29)
 
-------------------
 

	
 
* Fix ``str(Message)`` when subject contains unicode chars.
 

	
 

	
 
0.9.22 (2018-07-26)
 
-------------------
 

	
 
* Allow consulting the db for core 'product_key' setting.
 

	
 
* Define some settings for purchasing / receiving.
 

	
 

	
 
0.9.21 (2018-07-19)
 
-------------------
 

	
 
* Add ``api.get_product_by_item_id()`` convenience function.
 

	
 
* Add ``RattailConfig.product_key()`` and ``product_key_title()``.
 

	
 
* Fix batch row count when removing row from batch.
 

	
 
* Various tweaks to purchase batch handler logic.
 

	
 
* Let config define a "not found" product image URL.
 

	
 
* Add ``PurchaseBatch.order_quantities_known`` and ``is_truck_dump_parent()`` etc.
 

	
 
* Add basic ``settings`` module.
 

	
 
* Tweak how we copy product key, do lookup for some receiving batches.
 

	
 
* Send email when upgrade is performed, whether success or failure.
 

	
 

	
 
0.9.20 (2018-07-11)
 
-------------------
 

	
 
* Allow sync of ``unit_uuid`` for Rattail -> Rattail ProductImporter.
 

	
 
* Add generic ``--verbose`` arg for all commands.
 

	
 
* Add ``modified`` timestamp to all batch rows.
 

	
 
* Refactor truck dump "claiming" a bit, add "case quantity differs" status.
 

	
 
* Fix logic for purchase batch ``calc_best_fit()``.
 

	
 
* Don't allow execute of truck dump parent batch until fully claimed by children.
 

	
 
* Increase size of source, consumer fields for datasync change.
 

	
 
* Add customization hook for datasync consumer when fetching local object.
 

	
 

	
 
0.9.19 (2018-07-09)
 
-------------------
 

	
 
* Grow size of ``total_cost`` field for inventory batch rows.
 

	
 

	
 
0.9.18 (2018-07-06)
 
-------------------
 

	
 
* Add new ``backup`` command.
 

	
 
* Add generic ``silent.conf`` config file.
 

	
 
* Defer some imports, to avoid errors when sqlalchemy not installed.
 

	
 

	
 
0.9.17 (2018-07-03)
 
-------------------
 

	
 
* Add ``Product.default_pack``, plus ``is_unit_item()`` and ``is_pack_item()``.
 

	
 

	
 
0.9.16 (2018-07-03)
 
-------------------
 

	
 
* Add customization flags for rattail's Product importer, category fields.
 

	
 
* Add basic support for "command line" filemon action.
 

	
 
* Add setup/teardown handler hooks when cloning a batch.
 

	
 

	
 
0.9.15 (2018-07-01)
 
-------------------
 

	
 
* Add some customization flags for rattail's Product importer.
 

	
 

	
 
0.9.14 (2018-06-28)
 
-------------------
 

	
 
* Fix bug when setting status text for vendor catalog row.
 

	
 
* Allow user to overwrite unit cost for inventory batch rows.
 

	
 
* Show subcommand help as early as possible (avoid logging).
 

	
 
* Add ``credit_total`` field for (batch) purchase credits.
 

	
 
* Add "non-creditable" status for purchase credit.
 

	
 
* Allow refresh for 'completed' batch, by default.
 

	
 

	
 
0.9.13 (2018-06-18)
 
-------------------
 

	
 
* Add ``--max-diffs`` arg for importer commands.
 

	
 

	
 
0.9.12 (2018-06-18)
 
-------------------
 

	
 
* Add ``rattail.time.get_monday()`` convenience function.
 

	
 
* Add index on ``upload_time`` for Trainwreck transaction table.
 

	
 

	
 
0.9.11 (2018-06-14)
 
-------------------
 

	
 
* Fix bug when ``--max-delete`` used for importer commands.
 

	
 
* Cache categories by code instead of number.
 

	
 
* Add ``ExcelWriter.auto_resize()`` method.
 

	
 
* Add ``exempt_from_gross_sales`` flag for department and trainwreck line item.
 

	
 

	
 
0.9.10 (2018-06-09)
 
-------------------
 

	
 
* Add ``update-costs`` command for making future costs become current.
 

	
 
* Add ``Customer.one_person()`` convenience method.
 

	
 

	
 
0.9.9 (2018-06-07)
 
------------------
 

	
 
* Set continuum username for all datasync watchers, if present.
 

	
 
* Allow config to force the ``To:`` address for all generated emails.
 

	
 
* Don't record changes for any model ending in 'Version'.
 

	
 
* Add versioning workaround support for batch actions.
 

	
 

	
 
0.9.8 (2018-06-04)
 
------------------
 

	
 
* Add 'hidden' flag for inventory adjustment reasons.
 

	
 
* Add ``Vendor.abbreviation`` to schema.
 

	
 
* Add "null" datasync consumer.
 

	
 
* Add ``normalize_lastrun()`` convenience method for datasync watchers.
 

	
 
* Make some importers smarter when dealing with NULL primary key values.
 

	
 

	
 
0.9.7 (2018-05-30)
 
------------------
 

	
 
* Add initial support for "variance" inventory batch mode.
 

	
 

	
 
0.9.6 (2018-05-25)
 
------------------
 

	
 
* Add ``RattailConfig.single_store()`` convenience method.
 

	
 
* Add ``BatchHandler.remove_row()`` method.
 

	
 
* Improve default handler logic for purchase batches.
 

	
 
* Add "most of" support for truck dump receiving.
 

	
 
* Add ``runsql`` command, mostly for dev use.
 

	
 
* Add ``--key`` arg for importer commands.
 

	
 

	
 
0.9.5 (2018-04-12)
 
------------------
 

	
 
* Add ``ProductFutureCost`` table, future mode for vendor catalog batch.
 

	
 

	
 
0.9.4 (2018-04-09)
 
------------------
 

	
 
* Tweak some product relationships so can delete a product.
 

	
 
* Tweak how product cost is imported, when new records involved.
 

	
 
* Add ``strip_fieldnames`` kwarg to ``ExcelReader`` constructor.
 

	
 
* Prevent aggressive flush when making purchase from ordering batch.
 

	
 
* Add ``Email.dynamic_to`` flag, to improve admin config UI.
 

	
 
* Use common product mixin for ``VendorCatalogRow`` model.
 

	
 
* Add new status options for vendor catalog rows, tie back to existing cost.
 

	
 

	
 
0.9.3 (2018-03-12)
 
------------------
 

	
 
* Add ``vendor_item_code`` field to purchase credit records.
 

	
 
* Make ``rattail.csvutil.UnicodeReader`` => ``csv.reader`` for python3.
 

	
 

	
 
0.9.2 (2018-02-27)
 
------------------
 

	
 
* Return new batches from ``ImportHandler.make_batches()``.
 

	
 
* Add ship_method, notes_to_vendor for Purchase, PurchaseBatch.
 

	
 
* Don't consider a batch refreshable if it's marked complete.
 

	
 
* Add ``get_email()`` convenience methods to Vendor model.
 

	
 
* Add email attachment MIME type for MS Word .doc files.
 

	
 
* Remove ``rattail.fablib`` subpackage.
 

	
 
* More tweaks for python 3.
 

	
 

	
 
0.9.1 (2018-02-15)
 
------------------
 

	
 
* More tweaks for python 3.
 

	
 
* Set row count when cloning batch.
 

	
 

	
 
0.9.0 (2018-02-14)
 
------------------
 

	
 
* Misc. cleanup for Python 3.
 

	
 
* Ditch older 'progressbar' for newer 'progress' package.
 

	
 
* Remove FormEncode dependency.
 

	
 
* Add 'bcrypt' dependency; remove 'py-bcrypt' for auth.
 

	
 
* Add 'six' to context when rendering email templates.
 

	
 
* Refactor sample web view for new batch, per master changes.
 

	
 
* Add some python3 awareness when installing mod_wsgi.
 

	
 

	
 
0.8.55 (2018-02-08)
 
-------------------
 

	
 
* Optionally suppress warning from psycopg2 about their packaging changes.
 

	
 

	
 
0.8.54 (2018-02-07)
 
-------------------
 

	
 
* Add way to "force versioning" when making new migrations.
 

	
 
* Add 'force' kwarg to ``pod.render_document()``.
 

	
 
* Add ``EmailHandler`` logic, with support for recording ``EmailAttempt``.
 

	
 
* Add "(dry run)" to import logging summary, when applicable.
 

	
 
* Add support for ``pool_pre_ping`` config, for SQLAlchemy engines.
 

	
 
* Copy "safe MIME text" email encoding workaround from Django.
 

	
 

	
 
0.8.53 (2018-01-31)
 
-------------------
 

	
 
* Fix some logging for "bulk" import handlers.
 

	
 
* Tweak how rattail import handler makes its session.
 

	
 

	
 
0.8.52 (2018-01-29)
 
-------------------
 

	
 
* Allow override of most kwargs when sending email.
 

	
 
* Don't supply price from batch when printing labels, unless "static prices".
 

	
 
* Add ``Brand.confirmed`` and unique constraint for ``name``.
 

	
 
* Add basic ``ExcelWriter`` class, plus xlrd and openpyxl dependencies.
 

	
 

	
 
0.8.51 (2018-01-24)
 
-------------------
 

	
 
* Add index to Trainwreck item table, for ``transaction_uuid``.
 

	
 
* Add ``cashback`` field to Trainwreck transaction.
 

	
 

	
 
0.8.50 (2018-01-16)
 
-------------------
 

	
 
* Add some MIME magic for CSV attachments when sending email.
 

	
 
* Don't use DB as fallback when determining data model.
 

	
 
* Add ``case_cost`` property for inventory batch rows.
 

	
 
* Let db config keys be defined as arbitrary list.
 

	
 
* Add install logic for certbot on debian 9.
 

	
 
* Allow certbot to be installed from source, even if package is available.
 

	
 

	
 
0.8.49 (2018-01-07)
 
-------------------
 

	
 
* Add model, importer for InventoryAdjustmentReason.
 

	
 
* Let label batch provide product prices when executing.
 

	
 
* Make ``BatchHandler.execute_many()`` responsible for setting execution details.
 

	
 
* Assume MariaDB is *not* of concern, by default.
 

	
 
* Make ``~/.ssh`` by default, when bootstrapping rattail.
 

	
 
* Add ``postgresql.create_schema()`` fab function.
 

	
 
* Add ``util.get_object_spec()`` convenience function.
 

	
 
* Add first attempt for "importer as batch" feature.
 

	
 

	
 
0.8.48 (2018-01-04)
 
-------------------
 

	
 
* Add ``Product.price_required`` flag to schema.
 

	
 
* Grow cost columns for vendor catalog batches.
 

	
 

	
 
0.8.47 (2017-12-19)
 
-------------------
 

	
 
* Add ``Customer.employee`` convenience property.
 

	
 
* Add ``Person.first_valid_email()`` convenience method.
 

	
 

	
 
0.8.46 (2017-12-08)
 
-------------------
 

	
 
* Add suggested retail for vendor catalog batches.
 

	
 
* Add logging filter for Luigi task summary.
 

	
 

	
 
0.8.45 (2017-12-05)
 
-------------------
 

	
 
* Use bytestring with ``getpass()``.
 

	
 

	
 
0.8.44 (2017-12-03)
 
-------------------
 

	
 
* Add ``Transaction.system_id`` for Trainwreck.
 

	
 

	
 
0.8.43 (2017-12-03)
 
-------------------
 

	
 
* Add "manually priced" flags for price batch.
 

	
 
* Add basic "auto-execute" logic for new batches created via filemon.
 

	
 
* Add "extension" support for all Rattail importers.
 

	
 
* Add way to set label batch description, notes from input data file.
 

	
 
* Add basic "static prices" support for label batches.
 

	
 
* Allow label batches to exist without a "label profile".
 

	
 
* Add default "execute many" behavior for batch handlers.
 

	
 
* Skip some (more) incomplete rows when printing label batch.
 

	
 

	
 
0.8.42 (2017-11-19)
 
-------------------
 

	
 
* Add port for postgres commands, let env define "workon home" for fabric.
 

	
 
* Add init script for Luigi scheduler daemon.
 

	
 
* Add base class for importer diff emails.
 

	
 

	
 
0.8.41 (2017-11-12)
 
-------------------
 

	
 
* Coerce fields to proper list, for importer commands.
 

	
 

	
 
0.8.40 (2017-11-12)
 
-------------------
 

	
 
* Allow specifying sheet by name when creating ExcelReader.
 

	
 
* Add "re-populate on refresh" flag for batch handlers.
 

	
 
* Add support for ``--fields`` and ``--exclude-fields`` importer cmd line args.
 

	
 
* Add ``commit`` flag for ``short_session()``.
 

	
 
* Add ``time.date_range()`` convenience function.
 

	
 

	
 
0.8.39 (2017-11-10)
 
-------------------
 

	
 
* Switch to ``passlib`` for password hashing and verification.
 

	
 
* Add generic ``util.data_diffs()`` function.
 

	
 
* Add ``BatchHandler.cache_model()`` convenience function.
 

	
 

	
 
0.8.38 (2017-11-02)
 
-------------------
 

	
 
* Add ``end_time`` index for Trainwreck transactions
 

	
 
* Add index on ``item_id`` for Trainwreck line items
 

	
 

	
 
0.8.37 (2017-11-01)
 
-------------------
 

	
 
* Add personnel and product flags for Department
 

	
 
* Add convenience for parsing date in Excel reader
 

	
 

	
 
0.8.36 (2017-10-29)
 
-------------------
 

	
 
* Add ``make_username()`` api function
 

	
 

	
 
0.8.35 (2017-10-28)
 
-------------------
 

	
 
* Add cashier ID, name to trainwwreck transaction schema
 

	
 

	
 
0.8.34 (2017-10-27)
 
-------------------
 

	
 
* Delete UserEvent records when parent User is deleted
 

	
 
* Fix setup.py in project template, to include package data by default
 

	
 

	
 
0.8.33 (2017-10-26)
 
-------------------
 

	
 
* Let ``authenticate_user()`` function accept a user object *or* username
 

	
 
* Make rattail <-> rattail datasync use topographic sort
 

	
 

	
 
0.8.32 (2017-10-25)
 
-------------------
 

	
 
* Add speedup for rattail -> rattail AdminUser imports
 

	
 
* Make rattail <-> importers and dataysnc more flexible
 

	
 
* Improve the ``upgrade`` command, to allow better automation
 

	
 

	
 
0.8.31 (2017-10-24)
 
-------------------
 

	
 
* Fix encoding issue when sending email
 

	
 

	
 
0.8.30 (2017-10-24)
 
-------------------
 

	
 
* Add ``item_id`` to Trainwreck schema, rename ``item_scancode``
 

	
 
* Add index on trainwreck ``Transaction.start_time``
 

	
 
* Add ``User.last_login`` to schema
 

	
 
* Add ``Person.users`` relationship
 

	
 
* Make sending email more configurable
 

	
 

	
 
0.8.29 (2017-10-19)
 
-------------------
 

	
 
* Add better str() methods for contact models
 

	
 
* Add 'using' db key when importing from Django
 

	
 
* Add generic datasync consumer for Rattail -> Rattail export
 

	
 
* Let ``time.previous_month()`` calculate arbitrary number of months
 

	
 
* Add versioned models, importers for EmployeeHistory, Note
 

	
 
* Add ``upload_time`` to base Transaction table for trainwreck
 

	
 

	
 
0.8.28 (2017-09-29)
 
-------------------
 

	
 
* Grow size of ``total_cost`` column for inventory batches
 

	
 

	
 
0.8.27 (2017-09-28)
 
-------------------
 

	
 
* Don't auto-assign inventory batch count mode
 

	
 

	
 
0.8.26 (2017-09-28)
 
-------------------
 

	
 
* Add ``time.first_of_month()`` function
 

	
 
* Add basic ``ExcelReader`` class, for convenience..
 

	
 
* Add ``force_yes`` param to ``fablib.apt.install()``
 

	
 

	
 
0.8.25 (2017-09-15)
 
-------------------
 

	
 
* Add ``fablib.mysql.is_mariadb()`` to check for MariaDB
 

	
 
* Refactor ``fablib.python`` somewhat to allow for apt package installs
 

	
 
* Add ``deploy.local_exists()`` convenience method for fablib
 

	
 
* Add ``time.next_month()`` function
 

	
 
* Various importing tweaks...
 

	
 
* Add ``commands.list_argument`` for list-type args
 

	
 

	
 
0.8.24 (2017-08-20)
 
-------------------
 

	
 
* Fix phone_number_2 bug for Employee importer
 

	
 

	
 
0.8.23 (2017-08-18)
 
-------------------
 

	
 
* Fix more str() encoding bugs
 

	
 

	
 
0.8.22 (2017-08-18)
 
-------------------
 

	
 
* Update sample data and importer, per latest schema
 

	
 
* Add ``UpgradeHandler.do_execute()`` and ``mark_executing()``
 

	
 
* Fix ``str(Person)`` encoding bug
 

	
 

	
 
0.8.21 (2017-08-15)
 
-------------------
 

	
 
* Don't allow upgrade command to be specified in Settings table
 

	
 
* Add ``UpgradeHandler.delete_files()`` method
 

	
 
* Add enum for purchase credit status
 

	
 

	
 
0.8.20 (2017-08-13)
 
-------------------
 

	
 
* Update project template to stop referencing 'better' tailbone theme
 

	
 

	
 
0.8.19 (2017-08-12)
 
-------------------
 

	
 
* Fix product price data gap for Rattail -> Rattail importer
 

	
 

	
 
0.8.18 (2017-08-11)
 
-------------------
 

	
 
* Add "zero-all" mode support for inventory batches
 

	
 

	
 
0.8.17 (2017-08-10)
 
-------------------
 

	
 
* Fix broken ``Person.user`` relationship
 

	
 

	
 
0.8.16 (2017-08-09)
 
-------------------
 

	
 
* Add batch descriptions, prev_on_hand for inventory batches, etc.
 

	
 

	
 
0.8.15 (2017-08-09)
 
-------------------
 

	
 
* Capture exit code from upgrade process, use it to indicate success/fail
 

	
 
* Provide default path for rattail sudoers file
 

	
 

	
 
0.8.14 (2017-08-08)
 
-------------------
 

	
 
* Specify ``expire_on_commit`` for rattail db sessions
 

	
 
* Add sample config for with/out versioning
 

	
 

	
 
0.8.13 (2017-08-08)
 
-------------------
 

	
 
* Add ``RattailConfig.get_model()``
 

	
 
* Add email settings for ``rattail import-versions``
 

	
 
* set default runas user for all importers targeting rattail
 

	
 
* add startup check to ensure continuum is functional (if enabled)
 

	
 

	
 
0.8.12 (2017-08-08)
 
-------------------
 

	
 
* Add ``RattailConfig.appdir()`` method
 

	
 
* Make ``RattailConfig.workdir()`` use ``require`` by default
 

	
 
* Improve status tracking for upgrades; add package diff
 

	
 
* Add basic API docs for ``rattail.upgrades`` and ``rattail.win32``
 

	
 

	
 
0.8.11 (2017-08-07)
 
-------------------
 

	
 
* Add common sudoers file for rattail
 

	
 
* Tweak how some batches are populated
 

	
 

	
 
0.8.10 (2017-08-07)
 
-------------------
 

	
 
* Add become/stop root user events to enum
 

	
 
* Add schema for tracking app upgrades
 

	
 
* Add ``rattail upgrade`` command
 

	
 

	
 
0.8.9 (2017-08-04)
 
------------------
 

	
 
* Add schema/enum for recording user events
 

	
 

	
 
0.8.8 (2017-08-04)
 
------------------
 

	
 
* Add ``Customer.active_in_pos_sticky`` flag
 

	
 

	
 
0.8.7 (2017-08-03)
 
------------------
 

	
 
* Update on-order inventory counts when creating new purchase
 

	
 
* Add ``rattail.batch.consume_batch_id()`` convenience function
 

	
 
* Fix str() for MailTemplateNotFound exception
 

	
 
* Add ``previous_month()`` and ``last_of_month()`` convenience functions
 

	
 
* Add ``Subcommand.make_session()`` method
 

	
 

	
 
0.8.6 (2017-07-26)
 
------------------
 

	
 
* Add basic support for native product inventory
 

	
 
* Add generic ``Product.status_code`` field
 

	
 
* Avoid session auto-flush when populating or refreshing a batch
 

	
 

	
 
0.8.5 (2017-07-14)
 
------------------
 

	
 
* Add versioning for products and everything else
 

	
 

	
 
0.8.4 (2017-07-14)
 
------------------
 

	
 
* Add custom status for purchasing batches
 

	
 

	
 
0.8.3 (2017-07-14)
 
------------------
 

	
 
* Add ``util.pretty_boolean()`` convenience function
 

	
 

	
 
0.8.2 (2017-07-13)
 
------------------
 

	
 
* Add ``complete`` flag to all batches
 

	
 
* Add generic reason code for inventory batches
 

	
 
* Add unit cost for inventory batches
 

	
 
* Provide default ``Person.display_name`` when importing customer data
 

	
 

	
 
0.8.1 (2017-07-07)
 
------------------
 

	
 
* Switch license to GPL v3 (no longer Affero)
 

	
 

	
 
0.8.0 (2017-07-06)
 
------------------
 

	
 
Main reason for bumping version is the (re-)addition of data versioning support
 
using SQLAlchemy-Continuum.  This feature has been a long time coming and while
 
not yet fully implemented, we have a significant head start.
 

	
 
* Refactored data versioning support! (contact tables only, for now)
 

	
 
* Add basic ``import-versions`` command, for "catching up" versions
rattail/_version.py
Show inline comments
 
# -*- coding: utf-8; -*-
 

	
 
__version__ = '0.9.267'
 
__version__ = '0.9.268'
0 comments (0 inline, 0 general)