forked from rc/aircox
77 lines
1.9 KiB
Python
Executable File
77 lines
1.9 KiB
Python
Executable File
from django.shortcuts import render
|
|
from django.core.serializers.json import DjangoJSONEncoder
|
|
from django.utils import timezone, dateformat
|
|
|
|
import programs.models as models
|
|
import programs.settings
|
|
|
|
|
|
|
|
class DiffusionList:
|
|
type = None
|
|
next = None
|
|
prev = None
|
|
at = None
|
|
count = None
|
|
|
|
|
|
def __init__ (self, **kwargs):
|
|
self.__dict__ = kwargs
|
|
if kwargs:
|
|
self.get_queryset()
|
|
|
|
|
|
def get_queryset (self):
|
|
diffusions = models.Diffusion.objects;
|
|
|
|
if self.next: diffusions = diffusions.filter( date_end__ge = timezone.now() )
|
|
elif self.prev: diffusions = diffusions.filter( date_end__le = timezone.now() )
|
|
else: diffusions = diffusions.all()
|
|
|
|
diffusions = diffusions.extra(order_by = ['date'])
|
|
if self.at: diffusions = diffusions[self.at:]
|
|
if self.count: diffusions = diffusions[:self.count]
|
|
|
|
self.diffusions = diffusions
|
|
|
|
|
|
def raw_string():
|
|
"""
|
|
Return a string with diffusions rendered as raw
|
|
"""
|
|
res = []
|
|
for diffusion in diffusions:
|
|
r = [ dateformat.format(diffusion.date, "Y/m/d H:i:s")
|
|
, str(diffusion.type)
|
|
, diffusion.parent.file.path
|
|
, diffusion.parent.file.url
|
|
]
|
|
|
|
res.push(' '.join(r))
|
|
|
|
return '\n'.join(res)
|
|
|
|
|
|
def json_string():
|
|
import json
|
|
|
|
res = []
|
|
for diffusion in diffusions:
|
|
r = {
|
|
'date': dateformat.format(diffusion.date, "Y/m/d H:i:s")
|
|
, 'date_end': dateformat.format(diffusion.date_end, "Y/m/d H:i:s")
|
|
, 'type': str(diffusion.type)
|
|
, 'file_path': diffusion.parent.file.path
|
|
, 'file_url': diffusion.parent.file.url
|
|
}
|
|
|
|
res.push(json.dumps(r))
|
|
|
|
return '\n'.join(res)
|
|
|
|
|
|
|
|
|
|
|
|
|