kopia lustrzana https://gitlab.com/marnanel/chapeau
Anything with a "former_type" is deemed to be a Tombstone.
This is instead of changing f_type, which has far too many knock-on effects now that we're using polymorphism. Tombstones have active=False. AllUsersView updated so that it uses the polymorphic types.2019-08-17
rodzic
712c57730b
commit
8faa494ed6
|
@ -293,7 +293,7 @@ class Object(PolymorphicModel):
|
|||
def entomb(self):
|
||||
logger.info('%s: entombing', self)
|
||||
|
||||
if self.f_type=='Tombstone':
|
||||
if self['former_type'] is not None:
|
||||
logger.warn(' -- already entombed; ignoring')
|
||||
return
|
||||
|
||||
|
@ -301,9 +301,9 @@ class Object(PolymorphicModel):
|
|||
raise ValueError("%s: you can't entomb remote things %s",
|
||||
self, str(self.remote_url))
|
||||
|
||||
self['type'] = 'Tombstone'
|
||||
self['former_type'] = self.f_type
|
||||
self['deleted'] = datetime.datetime.now()
|
||||
self.active = True
|
||||
self.active = False
|
||||
|
||||
self.save()
|
||||
logger.info('%s: entombed', self)
|
||||
|
|
|
@ -91,6 +91,10 @@ class KepiView(django.views.View):
|
|||
return self._render_object(request, result)
|
||||
|
||||
def _to_json(self, data):
|
||||
|
||||
if 'former_type' in data:
|
||||
data['type'] = 'Tombstone'
|
||||
|
||||
result = JsonResponse(
|
||||
data=data,
|
||||
json_dumps_params={
|
||||
|
@ -101,7 +105,7 @@ class KepiView(django.views.View):
|
|||
|
||||
result['Content-Type'] = 'application/activity+json'
|
||||
|
||||
if data['type']=='Tombstone':
|
||||
if 'former_type' in data:
|
||||
result.reason = 'Entombed'
|
||||
result.status_code = 410
|
||||
|
||||
|
@ -325,7 +329,7 @@ class AllUsersView(KepiView):
|
|||
|
||||
logger.debug('Finding all users.')
|
||||
|
||||
return Object.objects.filter(f_type='Person')
|
||||
return Actor.objects.all()
|
||||
|
||||
def _modify_list_item(self, obj):
|
||||
return obj.activity_form
|
||||
|
|
Ładowanie…
Reference in New Issue