29 rindas
1.1 KiB
Python
29 rindas
1.1 KiB
Python
from django.core.management.base import BaseCommand
|
|
import os
|
|
import pygal
|
|
from pygal.models import Item
|
|
|
|
|
|
class Command(BaseCommand):
|
|
def handle(self, *args, **options):
|
|
lil = self.lost_item_list()
|
|
if len(lil) == 0:
|
|
self.stdout.write(self.style.SUCCESS('No lost items. Nothing to delete.'))
|
|
else:
|
|
self.stdout.write(self.style.WARNING('Lost Items:'))
|
|
for item in lil:
|
|
self.stdout.write(self.style.WARNING(' - %s' % str(item)))
|
|
response = input('Delete the listed items and all data inside permanently? [y/N]: ')
|
|
if response.lower() == 'y':
|
|
self.stdout.write(self.style.SUCCESS('Deleting Items:'))
|
|
for item in lil:
|
|
item.delete()
|
|
self.stdout.write(self.style.SUCCESS(' - Deleted: %s' % str(item)))
|
|
|
|
def lost_item_list(self):
|
|
lil = []
|
|
for i in Item.objects.all():
|
|
if not os.path.exists(pygal.get_full_path(i.rel_path)):
|
|
lil.append(i)
|
|
return lil
|