Показать сообщение отдельно
  #1 (permalink)  
Старый 18.08.2011, 21:13
Новичок на форуме
Отправить личное сообщение для Lord Daedra Посмотреть профиль Найти все сообщения от Lord Daedra
 
Регистрация: 18.08.2011
Сообщений: 2

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)

Подскажите, как наиболее правильно было бы решить мою задачу?
Ответить с цитированием