Compare commits
3 commits
f9d9923acf
...
f0fa189bcd
| Author | SHA1 | Date | |
|---|---|---|---|
| f0fa189bcd | |||
| cc4b94a7b8 | |||
| ca5e1420e4 |
4 changed files with 28 additions and 5 deletions
|
|
@ -5,6 +5,13 @@ All notable changes to WuttaFarm will be documented in this file.
|
|||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## v0.11.1 (2026-03-21)
|
||||
|
||||
### Fix
|
||||
|
||||
- improve behavior when deleting mirrored record from farmOS
|
||||
- use correct uuid when processing webhook to delete record
|
||||
|
||||
## v0.11.0 (2026-03-15)
|
||||
|
||||
### Feat
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ build-backend = "hatchling.build"
|
|||
|
||||
[project]
|
||||
name = "WuttaFarm"
|
||||
version = "0.11.0"
|
||||
version = "0.11.1"
|
||||
description = "Web app to integrate with and extend farmOS"
|
||||
readme = "README.md"
|
||||
authors = [
|
||||
|
|
|
|||
|
|
@ -94,8 +94,7 @@ class ChangeProcessor:
|
|||
return
|
||||
|
||||
# delete corresponding record from our app
|
||||
obj = importer.get_target_object((change.uuid,))
|
||||
if obj:
|
||||
if obj := importer.get_target_object((change.farmos_uuid,)):
|
||||
importer.delete_target_object(obj)
|
||||
|
||||
# TODO: this should live elsewhere
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@
|
|||
Base class for WuttaFarm master views
|
||||
"""
|
||||
|
||||
import threading
|
||||
|
||||
import requests
|
||||
from webhelpers2.html import tags
|
||||
|
||||
from wuttaweb.views import MasterView
|
||||
|
|
@ -145,10 +148,24 @@ class WuttaFarmMasterView(MasterView):
|
|||
|
||||
# maybe delete from farmOS also
|
||||
if farmos_uuid:
|
||||
client = get_farmos_client_for_user(self.request)
|
||||
# nb. must use separate thread to avoid some kind of race
|
||||
# condition (?) - seems as though maybe a "boomerang"
|
||||
# effect is happening; this seems to help anyway
|
||||
thread = threading.Thread(
|
||||
target=self.delete_from_farmos, args=(client, farmos_uuid)
|
||||
)
|
||||
thread.start()
|
||||
|
||||
def delete_from_farmos(self, client, farmos_uuid):
|
||||
entity_type = self.get_farmos_entity_type()
|
||||
bundle = self.get_farmos_bundle()
|
||||
client = get_farmos_client_for_user(self.request)
|
||||
try:
|
||||
client.resource.delete(entity_type, bundle, farmos_uuid)
|
||||
except requests.HTTPError as exc:
|
||||
# ignore if record not found in farmOS
|
||||
if exc.response.status_code != 404:
|
||||
raise
|
||||
|
||||
|
||||
class TaxonomyMasterView(WuttaFarmMasterView):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue