Skip to content

Latest commit

 

History

History
170 lines (125 loc) · 7.95 KB

switch_function.md

File metadata and controls

170 lines (125 loc) · 7.95 KB

オンオフ機能

  • ckanext-feedbackには以下の3つのモジュールがあり、各モジュールのオンオフを切り替えることが出来ます。
    • Utilization (データの利活用方法に関するモジュール)
    • Resource (リソースへのコメントに関するモジュール)
    • Download (ダウンロードに関するモジュール)

※ デフォルトでは全てのモジュールがオン(True)になっています

  • Resourceについてはさらに以下のオプションのオンオフを切り替えることが出来ます。
    • 1つのリソースに対してコメントできる回数を各ユーザーごと、1回に制限する機能
    • リソースへの評価を行う機能

※ デフォルトでは上記2つのオプションはオフ(False)になっています

設定方法

  • 各モジュールとオプションを設定するには、以下の2通りの方法があります。
    • ckan.iniにオンオフの設定を記述する。
      • Organizationごとにモジュールのオンオフ設定はできない
    • feedback_config.jsonに設定を記述し、CKAN環境に配置する。
      • Organizationごとにモジュールのオンオフ設定が可能

ckan.inifeedback_config.jsonの2つの設定を行った場合、
feedback_config.jsonに記述した設定がckan.iniに記述した設定よりも優先されます。

(例)
ckan.iniにUtilizationのenablefalseとして記載
feedback_config.jsonにUtilizationのenabletrueとして記載し、enable_orgにorganization1のnameを記述
feedback_config.jsonの設定が優先され、organization1にて、Utilizationがオンになる

詳細は以下のマトリクスを参照して下さい。

  • 縦軸:ckan.iniへの設定記述の有無と記述された設定(enable)を表現しています。
  • 横軸:feedback_config.jsonの有無と記述された設定(enable, enable_org)を表現しています。
    • enableTrue/Falseの値を設定可能です
    • enable_orgはリスト型の配列で、Organizationのnameを格納することで、格納されたOrganizationは設定をオンにできます。
      • 設定方法の詳細は設定手順をご覧ください。

モジュールのオンオフ設定 優先度マトリクス
モジュールのオンオフ設定 優先度マトリクス

オプションのオンオフ設定 優先度マトリクス
オプションのオンオフ設定 優先度マトリクス

設定手順

ckanext-feedbackのインストール(まだの方のみ)

ckan.iniでオンオフの設定を行う場合

※ この方法で設定を行った場合はすべてのOrganizationにおいて、モジュールがオンまたは、オフになる
feedback_config.jsonに設定が記述され、CKAN環境に配置されている場合は本設定は反映されません

  1. オフにするモジュールについて、ckan.pluginsの下に以下の記述を追記する

    • utilizationモジュールをオフにする場合

      ckan.feedback.utilizations.enable = False
    • resourceモジュールをオフにする場合

      ckan.feedback.resources.enable = False
      • 1つのリソースに対してコメントできる回数を各ユーザーごと、1回に制限する場合(ユーザーのCookieを利用)

        • デフォルトの設定(False)では複数回のコメントが可能です
        ckan.feedback.resources.comment.repeated_post_limit.enable = True
      • リソースへの評価を行う機能をオンにする場合

        • デフォルトの設定(False)では、星5つでの評価機能を利用することはできません

          ckan.feedback.resources.comment.rating.enable = True
    • downloadモジュールをオフにする場合

      ckan.feedback.downloads.enable = False
  2. テーブル作成(まだの方のみ)

    • feedbackコマンド-modulesオプションを参考にオンにするモジュールのテーブル作成を行なってください

feedback_config.jsonでオンオフの設定を行う場合

  1. ckanext-feedback/feedback_config_sample.jsonの編集を行います

    • (例1) Utilizationをオフにする場合
    {
        "modules": {
            "utilizations": {
                "enable": false,
                "enable_orgs": []
            },
        }
    }
    • (例2) 以下の3つの設定を行う場合
      • organization1とorganization2において、Resourceをオンにする
      • また、1つのリソースに対する複数回のコメント制限するオプションはオフにする
      • organization1のみリソースへの評価機能をオンにする
        • {organization1のname}, {organization2のname}にはそれぞれのOrganizationのnameを記述してください
    {   
        "modules": {
            "resources": {
                "enable": true,
                "enable_orgs": ["{organizaiton1のname}", "{organizaiton2のname}"],
                "comments": {
                    "repeat_post_limit": {
                        "enable": false,
                        "enable_orgs": []
                    },
                    "rating": {
                        "enable": true,
                        "enable_orgs": ["{organizaiton1のname}"]
                    }
                }
            }
        }
    }

    nameが記述されていないOrganizationは、モジュールやオプションはオフとなる

  2. feedback_config.jsonをCKAN環境に配置する

    • /srv/app配下にfeedback_config.jsonを配置する

      • /srv/app以外の場所に配置する場合は以下の設定をckan.iniに記述する
        • {feedback_config.jsonを格納しているディレクトリパス}にパスを記述してください (例) /etc/ckan/default
      ckan.feedback.config_file = {feedback_config.jsonを格納しているディレクトリパス}
  3. テーブル作成(まだの方のみ)

    • feedbackコマンド-modulesオプションを参考にオンにするモジュールのテーブル作成を行なってください

downloadモジュールを外部プラグインと連携する場合

リソースがダウンロードされると、downloadモジュールはダウンロード数のカウント処理を行った後、デフォルトのダウンロードコールバックであるckan.views.resource:downloadを呼び出します。
しかし、そのコールバックを他Extensionの関数(例:googleanalytics のdonwload関数)に変更したい場合があります。
その場合ckan.ini内の設定変数ckan.feedback.download_handlerへ対象の関数を指定することで置き換えることも可能です。

例:ckanext-googleanalytics の場合

ckan.feedback.download_handler = ckanext.googleanalytics.views:download

また、逆に外部ハンドラを設定できる他のExtensionのコールバックとしてckanext-feedbackのdownloadモジュールを指定したい場合は、ckanext.feedback.views.download:downloadを使用できます。

例:ckanext-googleanalytics の場合

googleanalytics.download_handler = ckanext.feedback.views.download:download

これらの連携方法は、複数のextensionを使用する際に/downloadなどのパスが競合してしまう場合に役立ちます。