Add HarvestProject.deleted flag to track deletions in Harvest

set this flag instead of deleting project, so we do not lose other
info about it.  can delete manually if truly unwanted
This commit is contained in:
Lance Edgar 2022-01-30 12:14:42 -06:00
parent 259d3b0f33
commit 3883a8551f
3 changed files with 62 additions and 0 deletions

View file

@ -28,6 +28,8 @@ import datetime
import decimal
import logging
import sqlalchemy as sa
from rattail import importing
from rattail.util import OrderedDict
from rattail_harvest import importing as rattail_harvest_importing
@ -126,6 +128,22 @@ class HarvestProjectImporter(FromHarvest, rattail_harvest_importing.model.Harves
Import project data from Harvest
"""
@property
def supported_fields(self):
fields = list(super(HarvestProjectImporter, self).supported_fields)
# this is for local tracking only; is not in harvest
fields.remove('deleted')
return fields
def cache_query(self):
model = self.model
return self.session.query(model.HarvestProject)\
.filter(sa.or_(
model.HarvestProject.deleted == False,
model.HarvestProject.deleted == None))
def get_host_objects(self):
return self.webapi.get_projects()['projects']
@ -168,6 +186,13 @@ class HarvestProjectImporter(FromHarvest, rattail_harvest_importing.model.Harves
return data
def can_delete_object(self, project, data):
return not project.deleted
def delete_object(self, project):
project.deleted = True
return True
class HarvestTaskImporter(FromHarvest, rattail_harvest_importing.model.HarvestTaskImporter):
"""