##// END OF EJS Templates
Default maximum file count is 1
Default maximum file count is 1

File last commit:

r1765:7a6a61e1 default
r1780:8bac48cb default
Show More
statistics.py
34 lines | 1.1 KiB | text/x-python | PythonLexer
from django.core.management import BaseCommand
from django.db.models import Count
from boards.models import Attachment
from boards.utils import get_domain
class Command(BaseCommand):
help = 'Gather board statistics'
def handle(self, *args, **options):
print('* Domains and their usage')
domains = {}
for attachment in Attachment.objects.exclude(url=''):
domain = get_domain(attachment.url)
if domain in domains:
domains[domain] += 1
else:
domains[domain] = 1
for domain in domains:
print('{}: {}'.format(domain, domains[domain]))
print('* Overall numbers')
print('{} attachments in the system, {} of them as URLs'.format(
Attachment.objects.count(),
Attachment.objects.exclude(url='').count()))
print('* File types')
mimetypes = Attachment.objects.filter(url='')\
.values('mimetype').annotate(count=Count('id'))\
.order_by('-count')
for mimetype in mimetypes:
print('{}: {}'.format(mimetype['mimetype'], mimetype['count']))