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