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/)
|
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).
|
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)
|
## v0.11.0 (2026-03-15)
|
||||||
|
|
||||||
### Feat
|
### Feat
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ build-backend = "hatchling.build"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "WuttaFarm"
|
name = "WuttaFarm"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
description = "Web app to integrate with and extend farmOS"
|
description = "Web app to integrate with and extend farmOS"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
authors = [
|
authors = [
|
||||||
|
|
|
||||||
|
|
@ -94,8 +94,7 @@ class ChangeProcessor:
|
||||||
return
|
return
|
||||||
|
|
||||||
# delete corresponding record from our app
|
# delete corresponding record from our app
|
||||||
obj = importer.get_target_object((change.uuid,))
|
if obj := importer.get_target_object((change.farmos_uuid,)):
|
||||||
if obj:
|
|
||||||
importer.delete_target_object(obj)
|
importer.delete_target_object(obj)
|
||||||
|
|
||||||
# TODO: this should live elsewhere
|
# TODO: this should live elsewhere
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,9 @@
|
||||||
Base class for WuttaFarm master views
|
Base class for WuttaFarm master views
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import threading
|
||||||
|
|
||||||
|
import requests
|
||||||
from webhelpers2.html import tags
|
from webhelpers2.html import tags
|
||||||
|
|
||||||
from wuttaweb.views import MasterView
|
from wuttaweb.views import MasterView
|
||||||
|
|
@ -145,10 +148,24 @@ class WuttaFarmMasterView(MasterView):
|
||||||
|
|
||||||
# maybe delete from farmOS also
|
# maybe delete from farmOS also
|
||||||
if farmos_uuid:
|
if farmos_uuid:
|
||||||
entity_type = self.get_farmos_entity_type()
|
|
||||||
bundle = self.get_farmos_bundle()
|
|
||||||
client = get_farmos_client_for_user(self.request)
|
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()
|
||||||
|
try:
|
||||||
client.resource.delete(entity_type, bundle, farmos_uuid)
|
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):
|
class TaxonomyMasterView(WuttaFarmMasterView):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue