2016-03-24 9 views
1

私はTrytonでGNU Healthを使用しており、PYSONと現在のユーザーに関連するフィールドを使用してビューでドメイン検索を行います。問題は、現在のユーザーに関連するフィールドを参照する方法がわからないことです。現在のユーザーのフィールドを参照しているPYSONドメイン検索

ユーザーがis_healthprofであるかどうかをチェックし、現在のユーザーのlastnameフィールドをヘルスプロフェッショナルラストネームとして使用して、ユーザーに関連するデータのみが表示されるようにする場合は、チェックします。私はxmlビューファイルで次のコードを試しましたが、私はトリックを行う方法がわからないので動作していません。

<field name="domain">[('appointment_date', '>=', DateTime(hour=0, minute=0, second=0, microsecond=0)),(If(Eval('party.party.is_healthprof', -1),('healthprof.lastname','=',party.party.lastname)))]</field> 

ありがとうございました!

答えて

0

ドメインを使用する代わりに、ユーザーのis_healthproftフラグに依存するアクセスルールを追加する必要があります。参照:

http://doc.tryton.org/3.8/trytond/doc/topics/access_rights.html?highlight=access

にアクセスルールを使用すると、モデル上ですべての操作のためのドメインを強制されますので、ユーザは、関係フィールドのまたは異なるアクションのためのモデルをアクセスする場合、アクセスルールも適用されます。

私はHealthproftのユーザーグループを作成してこのグループに(そしてアクセスグループを)関連付ける方が良いと思うように、ユーザーにhealthproftがあるかどうかを示すフラグを作成するのではなく、

希望します。

+0

このユーザーグループにアクセスルール(ドキュメントに記載)を追加するだけです。 – pokoli

+0

あなたが言ったように私はしましたが、私は適切な 'id'を参照することができません。私はドメイン[( 'healthprof'、 '='、user.id)]を追加しましたが、私が得た 'id'は内部ユーザーとしてテーブルres_userに含まれています。私は、gnuhealth_healthprofessional.nameによってparty_party.idにリンクされているgnuhealth_healthprofessionalテーブル(gnuhealth_healthprofessional.id)に含まれているものを参照する必要があります。 party_partyのIDは、party_party.internal_userによって内部ユーザーに接続されています。私はドキュメンテーションに従おうとしましたが、私は初心者であり、動作させることはできません。おかげで高度な –

+0

あなたは適切なIDを取得するために関係を使用する必要があります。次のようなものがあります:[( 'healthprof'、 '='、user.party.gnu_professional.id)] – pokoli

関連する問題