Как разработать бэкенд для скрамоподобной доски - PullRequest
0 голосов
/ 30 августа 2011

В настоящее время я разрабатываю модуль для обсуждения (во многом как доска Scrum / Kanban) для приложения GPL ( e-cidadania ), и у меня нет опыта работы со сложными бэкэндами.Я разработал базовый веб-интерфейс для него, но теперь я не знаю, какой подход мне следует использовать для бэкэндов ajax и django для сохранения и манипулирования таблицей и примечаниями.

Таблица может содержать N строк и Nстолбцы, у каждой строки и столбца есть имя и позиция внутри таблицы.Каждая заметка также имеет позицию, текст и комментарии (управляется с помощью структуры комментариев django).

Я думал сохранить родительский элемент каждой заметки (чтобы я мог разместить его позже) и сохранить имя строки столбцы, такие как строки CSV.Это хороший подход?

Скриншот текущего интерфейса: http: // ur1.ca / 4zn4h

Обновление: я почти забыл, интерфейс сделан с помощью jQuery Sortables (так что пользователь может перемещать заметку по своему усмотрению) и CSS3.

1 Ответ

0 голосов
/ 30 августа 2011

Вам просто нужно смоделировать свой домен (то есть дебаты, которые выглядят как скрамборды) в Django.Сначала подумайте об этом на простом английском языке, например:

Имеет дебаты.Они состоят из критериев, организованных в строки и столбцы в определенном порядке.Это создает ячейки, в которых могут быть заметки.

Затем вы можете приступить к переводу этого в классы моделей.Не беспокойтесь о полях, которые они содержат, самый важный бит - это отношения (поэтому ForeignKey биты):

class Debate(models.Model):

    title = ...

class Column(models.Model):

    title = ...
    order = ...
    board = models.ForeignKey(ScrumBoard, related_name='columns')

class Row(models.Model):

    title = ...
    order = ...
    board = models.ForeignKey(ScrumBoard, related_name='rows')

class Cell(models.Model):

    column = models.ForeignKey(Column)
    row = models.ForeignKey(Row)

class Note(models.Model)

    text = ...
    cell = models.ForeignKey(Cell)

Это может быть слишком сложным для того, что вам нужно.Я не эксперт в проблеме, которую вы пытаетесь решить?Мое предложение, Django быстр - так что начните взламывать и попробуйте , и если все не так, вы можете вернуться на несколько шагов назад, очистить базу данных и попробовать еще раз.

Возможно, вам будет полезно поиграть с Юг , который выполняет миграцию базы данных, когда вы делаете такие вещи, как добавление / удаление / редактирование полей в ваших моделях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...