extjs 4 mvc, разбираемся с model & store
Если я в чем-либо ошибаюсь, поправьте меня, плз.
Задача: CRUD-админка для таблички клиентов.
Серверная часть:
Django, django-piston, REST
/api/clients - тут можно GET POST PUT DELETE
/api/clientslist - тут можно GET (в отличие от GET /api/clients тут не весь набор полей, а только id и имя клиента, это сделано для ускорения загрузки)
Что я хочу в ExtJS 4? Чтобы у меня был список клиентов, при нажатии открывалась информация о клиенте. Также кнопки создать/редактировать/удалить, открывающие соответствующие формы...
И ещё будет 1 большой отчет по клиентам со списком всех полей...
Мой вопрос в следующем - как лучше всего всё это организовать в модели и хранилища?
1. Мне нужна одна или две модели? Полагаю, что одна (просто клиенты, а не клиенты (все поля таблицы) и список клиентов ( с полями client_id, text=client_name, leaf=true)
2. Мне нужно TreeStore для списка клиентов и Store для отчёта
3. Какие Proxy использовать?
- основной это REST, url /api/clients
- для дерева (списка) клиентов ajax, api read: /api/clientslist
оно не может быть POST, PUT, DELETE
4. куда мне прописывать прокси?
- основной прямо на модель клиента
- в хранилище клиента ничего не прописывать
- в хранилище дерева (списка) клиентов переопределить дефолтный Proxy ajax, api read: /api/clientslist
5. как мне сохранять нового клиента? мне работать с моделью или с хранилищем? полагаю, что с моделью...
что я бы хотел: чтобы я добавил клиента через модель, далее произошел POST на /api/clients и обновилось основное хранилище, далее хранилище для дерева прочитало бы /api/clientslist и обновило себя (POST на /api/clientslist не поддерживается, оно должно просто синхронизироваться с /api/clientslist)
Подскажите, как наиболее правильно было бы решить мою задачу?
|