Ребята, помните мой топик про нехилое приложение такое, манагер фильтров(ну или фильтер билдер)? вот топик: http://djbook.ru/forum/topic/1262/Сейчас я приступил за него и подумываю о том, что б сделать его открытым на гит или bitbucket. Сама програмулина будет полезная и я ее уже начал писать исходя из того, что она будет для многоразового использования. батарейка, корочеКак думаете, будет ли она полезна другим? Дело в том, что опыта в написании батареек вообще нет. Хочется научиться их писать, подучить джангу и вообще скиллы свои поднять. Никто не хочет помочь? Можем обсудить ее здесь.Предполагаю, что она будет иметь фронтенд(bootstrap+jquery), backend - отдельное приложение "само в себе". Общение через JSON. Две(?) модели:
LOGICAL_OPERATORS = (('more','>'),
('more_eq','>='),
('less',''),
('or','OR'),
('not','NOT'),
('not_in','NOT IN'),
('in','IN'),
('like','LIKE'),
('null','IS NULL'),
)
class Filter(models.Model):
name = models.CharField(max_length=255)
user = models.ForeignKey(User)
for_all = models.BooleanField(default=False)
quick = models.BooleanField(default=False)
content_type = models.ForeignKey(ContentType)
class Meta:
verbose_name = 'Filter'
verbose_name_plural = 'Filters'
def __unicode__(self):
return self.name
class Condition(models.Model):
filter = models.ForeignKey(Filter, related_name='conditions')
oid = models.IntegerField()
content_type = models.ForeignKey(ContentType)
condition = models.CharField(max_length=255, choices=LOGICAL_OPERATORS)
class Meta:
verbose_name = 'Condition'
verbose_name_plural = 'Conditions'
def __unicode__(self):
return '"%s" condition.' % self.filter
первая модель - сами фильтры, вторая модель - условия для фильтров.пока не думал о том, как создавать запрос.. через raw? или может придумать что-то хитрее.отдельная вьюха, для возвращения структуры модели, по его content_type. Для обслуживания фронт-энд пишу сейчас плагин(опять же опыта нету).Плагин смотрит есть ли у него структура, если нет, то обращается к вьюхе и передает заранее заданный програмером content_type. Получает модель и передает обратно структуру. Потом плагин парсит структуру, создает форму фильтра и предлагает пользователю заполнить ее. После этого пользователь заполняет ее и сохраняет. Дальше, при вызове фильтра запрашивается фильтр, на бекэнде он собирается, исполняется и передает обратно JSON, ну а дальше хз.. программер сам обрабатывает данные)если интересно, буду рад обсудить и стартануть проект) предварительное название django-pimp-my-filter