2

IRCでredmineを確認しましたが、助けを得ることができませんでした。私はこれをスーパーユーザー、ServerFault、またはここに固執するために天候に悩まされましたが、私の問題は技術的にプログラミング指向であるため、ここで助けを探すことにしました。

私たちのニーズに対応するプロジェクトに基づいたレイアウトのMercurialリポジトリシステムがあります。リポジトリを管理し、正しい場所に配置するなど、楽しく機能するシェルスクリプトをいくつか作成しました。これらのスクリプトを呼び出して、Redmineからパラメータを渡そうとしています。app / controllers / projects_controller.rbを編集しています(75行目-> 87行目)

プロジェクトパラメータと現在のユーザーをプルすることができましたが、(Redmine Administrationのカスタムフィールドを使用して)追加した2つのカスタムフィールドがあり、これらのカスタムフィールドの値にアクセスしようとしています。誰かが私がこれらをどうやって手に入れることができるか考えていますか?

私の現在の作業テストステートメントは以下のとおりです。

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

2 に答える 2

3

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をインストールして、ソースとスクリプト/コンソールを調べました。

于 2010-07-19T01:59:49.817 に答える
1
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];

上記のスクリプトを(元のスクリプトにエコーする代わりに)呼び出してから、すでに持っているプロジェクトIDを渡すと、カスタムパラメータを必要に応じて使用できます。これは、単一のカスタムフィールドを取得するようにコーディングします(私は1つしか使用していませんでした)。

于 2010-07-19T18:59:04.573 に答える