Commit graph

3431 commits

Author SHA1 Message Date
Lance Edgar ad4f882c2e Update changelog 2023-06-17 18:11:19 -05:00
Lance Edgar 052b8277b2 Add basic support for quickie_lookup() in people handler
meant to locate a person by e.g. customer number
2023-06-17 15:07:34 -05:00
Lance Edgar c9c613936f Add enum for PersonNote.type values 2023-06-17 14:12:11 -05:00
Lance Edgar 65905a18d3 Update usage of get_product_key_field()
avoid deprecation warnings
2023-06-17 10:07:42 -05:00
Lance Edgar 854a1b4352 Update changelog 2023-06-16 22:20:11 -05:00
Lance Edgar 8d66402f1a Add get_short_display_name() method for auth handler
supersedes `User.get_short_name()`
2023-06-16 22:15:02 -05:00
Lance Edgar b51237c10a Update changelog 2023-06-16 20:42:02 -05:00
Lance Edgar 248af14f9c Add default logic for membership.ensure_member() 2023-06-16 17:03:07 -05:00
Lance Edgar f7d024f604 Fix SQLAlchemy 2.x warnings for rattail mysql-chars command 2023-06-16 13:35:32 -05:00
Lance Edgar abd5b00760 Output emptry string for rattail setting-get if no value 2023-06-16 11:54:26 -05:00
Lance Edgar 087b93827d Update changelog 2023-06-16 11:41:20 -05:00
Lance Edgar 8c36af516d Cache phone/email maxlens for datasync too 2023-06-16 10:25:01 -05:00
Lance Edgar df753b462c Update changelog 2023-06-15 21:25:26 -05:00
Lance Edgar 70b2a3b993 Revert "Add logic to allow/ignore cache objects which do not normalize"
This reverts commit f96f1794be.

pretty sure that was misguided somehow..in particular the scenario
described in that commit comment is no longer quite relevant, as the
CORE -> Rattail import no longer uses that composite key
2023-06-15 20:06:42 -05:00
Lance Edgar 859b469818 Flush periodically during the delete phase of importer 2023-06-15 11:55:01 -05:00
Lance Edgar 3cd486575e Update changelog 2023-06-15 10:46:33 -05:00
Lance Edgar d7ca0c7d2a Prefer account holder, shoppers over legacy Customers.people
but until all are migrated, support both

also add `get_contact_email()` and `get_contact_email_address()`
methods to app handler; deprecate similar things in various places
2023-06-14 23:32:31 -05:00
Lance Edgar 2481cdfad2 Be a little smarter when parsing datetime values from CSV
sometimes they may contain microseconds
2023-06-13 16:37:56 -05:00
Lance Edgar 9ebc8dea85 Add account holder first/last name support for Customer importer 2023-06-13 16:37:15 -05:00
Lance Edgar 27817675c9 Update changelog 2023-06-12 20:31:38 -05:00
Lance Edgar 9fc34c4993 Don't auto-sort query unless it appears to support that 2023-06-12 20:31:04 -05:00
Lance Edgar 445dc7c94a Fix edge case when creating new shopper record 2023-06-12 20:01:30 -05:00
Lance Edgar 71f83afae3 Add account_holder field for CustomerShopper import
boolean flag, can auto-set Customer.account_holder to one of the
shoppers

this also fixes some session-related bugs when updating phone/email
2023-06-11 14:49:32 -05:00
Lance Edgar b11313e6f1 Auto-sort sqlalchemy queries for importer host objects
hopefully this does not break anything..but can fix if so
2023-06-11 11:52:04 -05:00
Lance Edgar 3e863b1117 Make get_person() handle an Employee 2023-06-10 23:21:16 -05:00
Lance Edgar 2377d7523d Be more thorough for get_customers_for_account_holder() 2023-06-10 22:28:27 -05:00
Lance Edgar 08da58de71 Make default configs require instead of include rattail.conf 2023-06-10 22:05:51 -05:00
Lance Edgar fcbb9f04e9 Add phone/email support for CustomerShopper importer
store contact info on the Person
2023-06-10 21:09:09 -05:00
Lance Edgar 710fba9841 Allow -l shortcut for make-config --list-types 2023-06-10 18:59:06 -05:00
Lance Edgar 6d1b77006e Add logic to get member from customer object 2023-06-10 14:29:14 -05:00
Lance Edgar ec2f018dec Allow suppress warnings for unknown membership type when importing 2023-06-10 13:05:32 -05:00
Lance Edgar 78d54c2897 Fix type check to avoid errors
apparently can't just check attr.type.impl ..since that isn't always
there
2023-06-09 22:48:02 -05:00
Lance Edgar 7e0e709969 Add decimal support for CSV -> Rattail data coersion 2023-06-09 22:34:20 -05:00
Lance Edgar e8d66f964f Assume email settings come from entry points, by default
this may or may not slightly break some setups, but the fix is easy
enough if so
2023-06-09 19:58:03 -05:00
Lance Edgar 5ab56e5e9e Assume app/quiet.conf for config path if none is specified
hopefully makes running ad-hoc commands a bit simpler
2023-06-09 19:48:46 -05:00
Lance Edgar c46bd878e7 Add models for CustomerShopper, CustomerShopperHistory
also Customer.account_holder

and basic importers for each etc.  also some related logic was tweaked
accordingly, since now `Customer.shoppers` is allowed instead of using
`Customer.people` for instance
2023-06-07 20:58:11 -05:00
Lance Edgar 6967ec46da Update changelog 2023-06-06 19:27:43 -05:00
Lance Edgar ae6f3b533d Add basic support for membership types
just tracks which member has which type so far; the types do not
contain any useful attributes other than name
2023-06-06 13:11:13 -05:00
Lance Edgar 2feee2d629 Add get_customer_key_field() and _label() to AppHandler
also `get_member_key_field()` and `_label()`
2023-06-06 11:34:35 -05:00
Lance Edgar 57ef54dec3 Add get_product_key_field() and _label() to AppHandler
and deprecate corresponding config methods
2023-06-06 10:21:31 -05:00
Lance Edgar f96f1794be Add logic to allow/ignore cache objects which do not normalize
i hope this is a safe change..?  fingers crossed but i think it should
be okay..  this came up in the following scenario:

- CORE API -> Rattail import for Person data
- importer key was (customer_uuid, customer_person_ordinal)
- but some People already existed in Rattail app, w/ no customer
- so normalize_local_object() needed to return None if no customer
- but doing so caused errors, hence this change, which "fixed" it (?)

a bit surprising actually that such a thing never came up..maybe i am
just missing something obvious that is the typical pattern for this?

at any rate seems like normalize_local_object() should be allowed to
return None with implication that such an object would be "invisible"
and hence never be deleted by importer.  (so maybe the normal pattern
is just to override can_delete_object or whatever? but this seems good
to have too..)
2023-06-05 20:40:44 -05:00
Lance Edgar 2997769b2f Add basic maxlen validation when importing phone numbers 2023-06-05 20:17:23 -05:00
Lance Edgar 97d34c7f9b Allow for -l instead of --list-all-models for importer commands
much friendlier given the common need for that
2023-06-05 20:15:47 -05:00
Lance Edgar b517a77e13 Disable cascade_backrefs for Subdepartment.department 2023-06-05 20:15:23 -05:00
Lance Edgar 74affdd277 Lower log level when poser reports module not found 2023-06-05 08:52:44 -05:00
Lance Edgar aaf083ff8c Update changelog 2023-06-02 14:19:13 -05:00
Lance Edgar eab96d6625 Prefer [rattail.mail]handler over [rattail]email.handler
we now expose the former in tailbone config UI
2023-06-02 14:13:10 -05:00
Lance Edgar 65549777b1 Update changelog 2023-06-02 13:04:33 -05:00
Lance Edgar 51814468c2 Fix typo in employment handler 2023-06-02 13:04:09 -05:00
Lance Edgar 51a4c236ee Update changelog 2023-06-01 19:15:31 -05:00