sync_filters.py
31 lines
| 720 B
| text/x-python
|
PythonLexer
neko259
|
r1834 | import xml.etree.ElementTree as et | ||
from boards.models import Post | ||||
TAG_THREAD = 'thread' | ||||
class PostFilter: | ||||
def __init__(self, content=None): | ||||
self.content = content | ||||
def filter(self, posts): | ||||
return posts | ||||
def add_filter(self, model_tag, value): | ||||
return model_tag | ||||
class ThreadFilter(PostFilter): | ||||
def filter(self, posts): | ||||
op_id = self.content.text | ||||
op = Post.objects.filter(opening=True, id=op_id).first() | ||||
if op: | ||||
return posts.filter(thread=op.get_thread()) | ||||
else: | ||||
return posts.none() | ||||
def add_filter(self, model_tag, value): | ||||
thread_tag = et.SubElement(model_tag, TAG_THREAD) | ||||
thread_tag.text = str(value) | ||||