Lance Edgar
2c7961dfb9
Update changelog
2021-09-27 09:52:52 -04:00
Lance Edgar
601596d8bf
Add cache_model()
method to app handler
...
also make cache_model() always return an OrderedDict, in case the
ordering actually matters to caller
2021-09-27 09:45:17 -04:00
Lance Edgar
785f98547e
Make custorder batch handler responsible for (un)assigning contact
...
it also will update the contact info, i.e. phone/email
2021-09-27 09:08:54 -04:00
Lance Edgar
a04f21a5ab
Update changelog
2021-09-26 17:25:24 -04:00
Lance Edgar
6ec6b1c227
Assign store, fix sequence when making a new custorder/batch
2021-09-25 18:19:21 -04:00
Lance Edgar
0e4f47838c
Always assign `app
` attribute when instantiating batch handler
2021-09-25 18:18:52 -04:00
Lance Edgar
4fdc4f5823
Add render_quantity()
method to app handler
2021-09-25 18:18:37 -04:00
Lance Edgar
895b0ad442
Update changelog
2021-09-25 15:32:50 -04:00
Lance Edgar
bd39609a3d
Add render_price()
method for products handler
...
so that it can be invoked from multiple web views
2021-09-25 15:26:20 -04:00
Lance Edgar
1ebeac923f
Add "custom" customer autocomplete for new custorder handler
...
can search by name or phone number
2021-09-24 18:27:00 -04:00
Lance Edgar
3af545e1d7
Update changelog
2021-09-21 13:51:19 -05:00
Lance Edgar
d905132236
Some tweaks for customer orders
...
- improve how case size is determined
- auto-delete items when order is deleted
2021-09-21 13:47:47 -05:00
Lance Edgar
750c5fb7b7
Flush after deleting batch rows
...
not doing so is *believed* to have caused an error once...
2021-09-16 11:58:17 -05:00
Lance Edgar
5fdc0d8ac4
Update changelog
2021-09-16 11:08:48 -05:00
Lance Edgar
f96b2f19d3
Add "request merge" logic to people handler; send email alert
2021-09-15 19:01:21 -05:00
Lance Edgar
cdde513a19
Update changelog
2021-09-15 17:08:36 -05:00
Lance Edgar
e7e4f297d7
Update changelog
2021-09-15 17:04:10 -05:00
Lance Edgar
44a5027bea
Cache the configured model when making a datasync watcher
2021-09-15 16:56:37 -05:00
Lance Edgar
3553aee28a
Add AppHandler.normalize_phone_number()
method
2021-09-14 10:17:27 -05:00
Lance Edgar
5c24fa26bc
Update changelog
2021-09-12 19:14:07 -05:00
Lance Edgar
b95ddc2e13
Let "has activity" win over "has inventory" for delproduct row status
...
i.e. if an item has activity *and* inventory, then it's more helpful
to know about the activity; if it has no activity then the inventory
check will still happen of course
2021-09-12 19:00:48 -05:00
Lance Edgar
16d8bd879a
Add way to customize product autocomplete for new custorder
2021-09-09 19:14:39 -05:00
Lance Edgar
cdd41bccd9
Update changelog
2021-09-09 16:21:35 -05:00
Lance Edgar
7013e07aba
Make model importer "extensions" more..extensible
...
each class in the hierarchy should be able to contribute to the
overall set of extensions in use
2021-09-09 15:53:19 -05:00
Lance Edgar
eb7ef89da5
Raise specific error if batch is already executed
2021-09-09 11:59:00 -05:00
Lance Edgar
0d470d3405
Allow specifying alternate name for association proxy
...
this is useful when the proxy involves a list of association records,
e.g. `User.poser_groups` maps to sequence of `User._poser_groups.group`
that is probably a horrible description but am not finding the right
words...it may be better just to explicitly define the whole proxy in
calling code instead of using make_proxy() anyway?
2021-09-08 14:29:56 -05:00
Lance Edgar
9527b7ef8b
Fix name bug when creating new Person
2021-09-08 10:27:21 -05:00
Lance Edgar
5e52c74e0c
Add basic membership handler structure; tweak people, clientele
2021-09-03 18:26:32 -05:00
Lance Edgar
cf29864325
Update changelog
2021-09-01 12:19:22 -05:00
Lance Edgar
084e65a32d
Tweak some customization hooks for custorder batch handler
2021-08-29 16:36:36 -05:00
Lance Edgar
0c593d6b2f
Update changelog
2021-08-26 11:53:10 -05:00
Lance Edgar
13e2f0442b
Rename app.get_mail_handler()
=> app.get_email_handler()
...
to be consistent with other naming
2021-08-23 10:41:42 -05:00
Lance Edgar
bf865e3e1a
Add model for MergePeopleRequest
to track people in need of merge
...
people handler auto-completes the merge request when marge happens
2021-08-19 18:10:47 -05:00
Lance Edgar
53e9692170
Add merge-related methods to PeopleHandler
, plus some docs
...
also deprecate `get_people_handler()` function
2021-08-18 19:30:36 -05:00
Lance Edgar
0cdb664f77
Add auto-doc for rattail.app
module
2021-08-18 19:30:32 -05:00
Lance Edgar
d21629f1ba
Add more helpful error, if trainwreck import is missing transaction
2021-08-17 16:10:50 -05:00
Lance Edgar
701190e338
Add `app.get_mail_handler()
` method
2021-08-16 19:27:53 -05:00
Lance Edgar
753247f759
Update changelog
2021-08-04 13:00:12 -05:00
Lance Edgar
73f72f6050
Fix datasync bug for Rattail -> Rattail "import"
...
was reading object from local session, which made it appear as though
"no change" needed to be synced
2021-08-04 12:57:19 -05:00
Lance Edgar
62ba7056bf
Ignore ProductPriceAssociation changes for legacy Rattail datasync consumer
2021-08-03 10:30:51 -05:00
Lance Edgar
ca81ac39d4
Update changelog
2021-08-01 15:52:55 -05:00
Lance Edgar
afdcda273c
Refactor how we handle product "price xref" fields via datasync
...
now instead of the consumer taking extra steps during processing, the
watcher adds special changes to the queue. but the consumer still
needs to be configured to include the special importer for them, for now
this also combines shared import/export logic in a base class
2021-08-01 15:45:59 -05:00
Lance Edgar
0957bbe16d
Update changelog
2021-07-27 20:11:23 -05:00
Lance Edgar
47672d708c
Fix tests per 'dbkey' changes for Rattail -> Rattail importer
2021-07-27 15:49:18 -05:00
Lance Edgar
aab7ade6b2
Add email config for Rattail <-> Rattail data import/export
2021-07-27 11:48:37 -05:00
Lance Edgar
ef92bec06e
Improve default subject logic for importer warning emails
2021-07-22 12:02:19 -05:00
Lance Edgar
e2b3e91ee5
Update changelog
2021-07-22 09:25:03 -05:00
Lance Edgar
fcffca72fc
Fix super() parent bug
2021-07-22 09:20:38 -05:00
Lance Edgar
62a8f81b63
Update changelog
2021-07-21 20:17:00 -05:00
Lance Edgar
b76c6d4530
Add dict-specific logic for normalizing "local" object
...
this can be necessary if e.g. an importer always returns the host data
dict instead of a newly-created object, when in dry-run mode
2021-07-21 20:00:09 -05:00