Redmine - Ruby - Поиск значения настраиваемого поля - PullRequest
2 голосов
/ 09 июля 2010

Я проверил IRC на Redmine и не смог получить помощь.У меня не получилось выбраться из-за погоды, чтобы вставить это в Superuser, ServerFault или здесь, но поскольку моя проблема технически ориентирована на программирование, я решил обратиться за помощью здесь.отвечает нашим потребностям.Я написал несколько сценариев оболочки, которые прекрасно работают для управления хранилищем и размещения их в правильных местах и ​​т. Д. Я пытаюсь вызвать эти сценарии и передать их параметры из Redmine.Я редактирую app / controllers / projects_controller.rb (строки 75 -> 87)

Мне удалось получить параметры проекта и текущего пользователя, но у меня есть два пользовательских поля, которые я добавил (используя пользовательские поля вАдминистрация Redmine), и я пытаюсь получить доступ к значениям этих пользовательских полей.Кто-нибудь имеет какие-либо идеи, как я могу получить это?

Мой текущий рабочий тест ниже:

 system "echo '#{@project.identifier}, #{User.current}' >> /tmp/rm.log"

Ответы [ 2 ]

3 голосов
/ 19 июля 2010

Используйте модель CustomField.Например,

  # Find the first Custom Field
  cf = CustomField.first
  # Get the name
  puts cf.name
  # Find out if this Custom Field is for all projects
  cf.is_for_all?
  # If not, find out which projects are using it
  cf.projects

Чтобы понять это, я просто установил Redmine-1.0.0 и покопался в исходном коде и скрипте / консоли.

1 голос
/ 19 июля 2010
use DBI;

$dbServer='';
$user='';
$pass='';
$ident=$ARGV[0];

my $dsn = "dbi:mysql:database=redmine;host=$dbServer;port=3306";
my $dbh = DBI->connect($dsn, "$user","$pass") or die "Can't connet to the Database: $DBI::errstr\n";
my $sth = $dbh->prepare("SELECT value FROM custom_values c INNER JOIN projects p ON c.customized_id=p.id WHERE p.identifier='$ident' LIMIT 1");
$sth -> execute();
my @row=$sth->fetchrow_array();
my $serverParams=@row[0];

Вызов вышеописанного скрипта (вместо отображения в оригинале), а затем передача идентификатора проекта, который у нас уже есть, пользовательский параметр может быть использован любым способом nessacary.Этот код позволяет захватить одно настраиваемое поле (я использовал только одно).

...