Перейти к содержимому


а в 1.9.7 - появилась возможность запрещать редактировать ячейку


Сообщений в теме: 5

#1 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 12 Апрель 2013 - 19:02

помню уже много раз спрашивал, про это возможность раньше - но какого то работающего способа так и не нашли. может сейчас появился.

итак есть таблица с ячейками 1, 2, 3, 4, 5, 6, 7 и т.д.

1) Нужно, чтобы если пользователь вписал что то в поле 5, чтобы после этого он уже не мог редактировать именно поле 5. А все остальные, чтобы он мог редактировать как и раньше (т.е. смена пользователя здесь не подходит).

2) Вообще крутой вариант, сделать как на форумах и в соц.сетях - можно редактировать свое сообщение в течение небольшого времени (например 10 минут), а потом уже не можешь.

Как реализовать вопрос №1 ?

Ну а если найдется гений который и второй вопрос решит - с меня причитается

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Апрель 2013 - 11:19

1) Еще начиная с 1.9.3 и вплоть до 1.9.7 это все реализуется с помощью расширенных прав. Смена пользователя как раз нужна чтобы закрыть редактирование поля. Способ хоть и "через одно место", но он работает и при желании настроить можно (не знаю, что вам помешало в прошлый раз). А вот начиная с 1.9.8 это можно будет реализовать более логичным и простым способом.
2) Ставится вычисление на изменение, которое записывает время редактирования поля в другое поле. Далее добавляем условие в первую задачу на проверку 10 минут.

#3 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 14 Апрель 2013 - 10:07

Помешало мне 2 условия:
1) нужно, что бы пользователь который создал строку - только он имел к ней доступ (чтобы другие пользователи не могли ее видеть)
2) что бы пользователь который создал строку, что то в поле 5, чтобы после этого он уже не мог редактировать именно поле 5. А все остальные, чтобы он мог редактировать как и раньше.
В итоге если мы меняем пользователя строки - то эти условия не выполняются.

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 15 Апрель 2013 - 11:39

Создаете 2 поля с типом пользователь - одно с правами на поле 5, другое - с правами на остальные поля. Оба поля заполняются текущим пользователем при создании записи, в результате права на поля записи получает только тот кто ее добавил, т.е. первое условие выполнено. Для выполнения второго условия - обнуляете вычислением поле с правами на поле №5 (убираете оттуда текущего пользователя), по событию заполнения поля №5 (т.е. если оно непустое) - в результате права не него пропадают. Второе условие - выполнено.

Вроде все как вы хотите?

#5 smart

    Активный участник

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 15 Апрель 2013 - 23:42

вроде все ок. кроме одного. у меня таких полей больше 50 - и это просто адский способ :)

может вы уже сделаете в правах доступа галочку - разрешить/запретить редактировать на отдельную ячейку?

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 16 Апрель 2013 - 09:33

Цитата

у меня таких полей больше 50 - и это просто адский способ

Но другого способа нет. Хотя в 1.9.8 это проще реализуется (не нужно создавать 50 доп.полей с расширенными правами и писать вычисления), но все равно придется создать 50 отдельных правил для каждого поля в группе доступа.

Цитата

может вы уже сделаете в правах доступа галочку - разрешить/запретить редактировать на отдельную ячейку?

Что имеется ввиду, не понял?





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных