Failed upgrade up to version 3.1.1 from version 3.0.12 #1472

This commit is contained in:
Karel Pičman 2023-10-04 10:52:25 +02:00
parent 8b41216517
commit 6a1985255f
22 changed files with 91 additions and 42 deletions

View File

@ -25,7 +25,9 @@ source 'https://rubygems.org' do
gem 'ox' # Dav4Rack
gem 'rake' unless Dir.exist?(File.expand_path('../../redmine_dashboard', __FILE__))
gem 'uuidtools'
gem 'xapian-ruby'
group :xapian do
gem 'xapian-ruby'
end
gem 'zip-zip' unless Dir.exist?(File.expand_path('../../vault', __FILE__))
# Redmine extensions

View File

@ -220,6 +220,17 @@ instance is stopped.
4. Install dependencies:
`bundle install`
4.1 In production environment
bundle config set --local without 'development test`
bundle install
4.2 Without Xapian fulltext search (on Windows)
bundle config set --local without 'xapian'
bundle install
5. Initialize/Update database:
`RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=redmine_dmsf`

View File

@ -18,8 +18,6 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require 'xapian'
require "#{File.dirname(__FILE__)}/../../lib/redmine_dmsf/lockable"
require 'English'
@ -368,7 +366,7 @@ class DmsfFile < ApplicationRecord
results = scope.where(find_options).uniq.to_a
results.delete_if { |x| !DmsfFolder.permissions?(x.dmsf_folder) }
unless options[:titles_only]
if !options[:titles_only] && RedmineDmsf::Plugin.xapian_available?
database = nil
begin
lang = Setting.plugin_redmine_dmsf['dmsf_stemming_lang'].strip

View File

@ -343,46 +343,58 @@
</em>
</p>
<% else %>
<p>
<%= content_tag :label, l(:label_index_database) %>
<%= text_field_tag 'settings[dmsf_index_database]', @settings['dmsf_index_database'], size: 50 %>
<em class="<%= klass %>">
<%= l(:label_default) %>: <%= File.expand_path('dmsf_index', Rails.root) %>
</em>
</p>
<% begin %>
<% require 'xapian' %>
<% xapian_disabled = false %>
<% rescue LoadError => e %>
<p class="warning"><%= l(:warning_xapian_not_available) %></p>
<% Rails.logger.warn e.message %>
<% xapian_disabled = true %>
<% end %>
<% if RedmineDmsf::Plugin.xapian_available? %>
<p>
<%= content_tag :label, l(:label_index_database) %>
<%= text_field_tag 'settings[dmsf_index_database]', @settings['dmsf_index_database'], size: 50 %>
<em class="<%= klass %>">
<%= l(:label_default) %>: <%= File.expand_path('dmsf_index', Rails.root) %>
</em>
</p>
<% stem_langs = %w(danish dutch english finnish french german hungarian italian norwegian portuguese romanian russian
spanish swedish turkish) %>
<% stem_langs = %w(danish dutch english finnish french german hungarian italian norwegian portuguese romanian russian
spanish swedish turkish) %>
<p>
<%= content_tag :label, l(:label_stemming_language) %>
<%= select_tag 'settings[dmsf_stemming_lang]', options_for_select(stem_langs, @settings['dmsf_stemming_lang']) %>
<em class="<%= klass %>">
<%= l(:note_possible_values) %>: <%= stem_langs.join(', ') %>. <%= "#{l(:label_default)}: #{stem_langs[2]}" %>
</em>
</p>
<p>
<%= content_tag :label, l(:label_stemming_language) %>
<%= select_tag 'settings[dmsf_stemming_lang]', options_for_select(stem_langs, @settings['dmsf_stemming_lang']) %>
<em class="<%= klass %>">
<%= l(:note_possible_values) %>: <%= stem_langs.join(', ') %>. <%= "#{l(:label_default)}: #{stem_langs[2]}" %>
</em>
</p>
<p>
<%= content_tag :label, l(:label_stem_strategy) %>
<%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_NONE',
@settings['dmsf_stemming_strategy'] == 'STEM_NONE', checked: true %> <%= l(:option_stem_none) %>
<br>
<%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_SOME',
@settings['dmsf_stemming_strategy'] == 'STEM_SOME' %> <%= l(:option_stem_some) %>
<br>
<%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_ALL',
@settings['dmsf_stemming_strategy'] == 'STEM_ALL' %> <%= l(:option_stem_all) %>
<br>
<em class="<%= klass %>">
<%= l(:text_stemming_info) %>
</em>
</p>
<p>
<%= content_tag :label, l(:label_stem_strategy) %>
<%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_NONE',
@settings['dmsf_stemming_strategy'] == 'STEM_NONE', checked: true %> <%= l(:option_stem_none) %>
<br>
<%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_SOME',
@settings['dmsf_stemming_strategy'] == 'STEM_SOME' %> <%= l(:option_stem_some) %>
<br>
<%= radio_button_tag 'settings[dmsf_stemming_strategy]', 'STEM_ALL',
@settings['dmsf_stemming_strategy'] == 'STEM_ALL' %> <%= l(:option_stem_all) %>
<br>
<em class="<%= klass %>">
<%= l(:text_stemming_info) %>
</em>
</p>
<p>
<%= content_tag :label, l(:label_enable_cjk_ngrams) %>
<%= check_box_tag 'settings[dmsf_enable_cjk_ngrams]', true, @settings['dmsf_enable_cjk_ngrams'] %>
<em class="<%= klass %>">
<%= l(:text_enable_cjk_ngrams) %>
</em>
</p>
<p>
<%= content_tag :label, l(:label_enable_cjk_ngrams) %>
<%= check_box_tag 'settings[dmsf_enable_cjk_ngrams]', true, @settings['dmsf_enable_cjk_ngrams'] %>
<em class="<%= klass %>">
<%= l(:text_enable_cjk_ngrams) %>
</em>
</p>
<% else %>
<p class="warning"><%= l(:warning_xapian_not_available) %></p>
<% end %>
<% end %>

View File

@ -180,6 +180,7 @@ cs:
error_file_can_not_be_created: Nelze vytvořit soubor v cílové složce
error_wrong_zip_encoding: Chybné kódování Zipu
warning_xapian_not_available: Xapian není k dostupný
menu_dmsf: DMS # Project tab title
label_physical_file_delete: Fyzické smazání souboru
user_is_not_project_member: Nejste členem projektu

View File

@ -177,6 +177,7 @@ de:
erstellt werden.
error_file_can_not_be_created: Datei kann nicht in dem gewählten Ordner erstellt werden.
error_wrong_zip_encoding: Falsche ZIP-Kodierung
warning_xapian_not_available: Xapian steht nicht zur Verfügung
menu_dmsf: DMS # Project tab title
label_physical_file_delete: Datei physisch löschen
user_is_not_project_member: Sie sind kein Projektmitglied

View File

@ -180,6 +180,7 @@ en:
error_file_can_not_be_created: "Files can't be created in storage directory"
error_wrong_zip_encoding: Wrong Zip encoding
warning_xapian_not_available: Xapian not available
menu_dmsf: DMS # Project tab title
label_physical_file_delete: Physical file delete
user_is_not_project_member: You are not a member of the project

View File

@ -180,6 +180,7 @@ es:
error_file_can_not_be_created: "El archivo no puede ser creado en el directorio destino"
error_wrong_zip_encoding: Codificación erronea de Zip
warning_xapian_not_available: Xapian no disponible
menu_dmsf: DMS # Project tab title
label_physical_file_delete: Eliminar archivos físicos
user_is_not_project_member: No es miemo del proyecto

View File

@ -174,6 +174,7 @@ fa:
error_file_can_not_be_created: "پرونده‌ها نمی‌توانند در پوشه‌ی ذخیره‌سازی ساخته شوند."
error_wrong_zip_encoding: رمزگذاری اشتباه zip
warning_xapian_not_available: Xapian در دسترس نیست
menu_dmsf: اسناد پیش‌رفته # Project tab title
label_physical_file_delete: پرونده فیزیکی حذف شود
user_is_not_project_member: شما عضو این پروژه نیستید

View File

@ -180,6 +180,7 @@ fr:
créé
error_file_can_not_be_created: "Le fichier n'a pas pu être enregistré dans le répertoire de stockage"
error_wrong_zip_encoding: Mauvais jeu de caractères pour la transformation du nom du ZIP
warning_xapian_not_available: Le module Xapian est indisponible
menu_dmsf: DMS # Project tab title
label_physical_file_delete: Suppression des fichiers
user_is_not_project_member: "Vous n'êtes pas un membre du projet"

View File

@ -180,6 +180,7 @@ hu:
error_file_can_not_be_created: A fájl nem hozható létre a tárolómappában
error_wrong_zip_encoding: Nem megfelelő Zip kódolás
warning_xapian_not_available: Xapian nem elérhető
menu_dmsf: DMS # Project tab title
label_physical_file_delete: Fizikai fájl törölve lett
user_is_not_project_member: Ön nem tagja a csoportnak

View File

@ -180,6 +180,7 @@ it: # Italian strings thx 2 Matteo Arceci!
error_file_can_not_be_created: "Il documento non può essere creato nella cartella di archiviazione"
error_wrong_zip_encoding: Errato encoding dello Zip
warning_xapian_not_available: Xapian non disponibile
menu_dmsf: Documenti # Project tab title
label_physical_file_delete: File fisico eliminato
user_is_not_project_member: Non sei un membro del progetto

View File

@ -180,6 +180,7 @@ ja:
error_file_can_not_be_created: ファイルを保存フォルダに作成できません
error_wrong_zip_encoding: Zip エンコーディングが正しくありません
warning_xapian_not_available: Xapian は利用できません
menu_dmsf: 文書管理 # Project tab title
label_physical_file_delete: 物理ファイルの削除
user_is_not_project_member: あなたはプロジェクトのメンバーではありません

View File

@ -180,6 +180,7 @@ ko:
error_file_can_not_be_created: 저장 공간에 파일을 생성할 수 없습니다
error_wrong_zip_encoding: 올바르지 않은 Zip 인코딩
warning_xapian_not_available: Xapian을 사용할 수 없습니다
menu_dmsf: DMS
label_physical_file_delete: 파일 삭제됨
user_is_not_project_member: 이 프로젝트의 구성원이 아닙니다

View File

@ -180,6 +180,7 @@ nl:
error_file_can_not_be_created: Bestand kan niet aangemaakt worden in opslag directory
error_wrong_zip_encoding: Onjuiste Zip encoding
warning_xapian_not_available: Xapian niet beschikbaar
menu_dmsf: Easy DMS
label_physical_file_delete: Fysiek bestand verwijderen
user_is_not_project_member: U bent geen lid van het project

View File

@ -179,6 +179,7 @@ pl:
error_file_can_not_be_created: "Plik nie może zostać utworzony w folderze przechowywania"
error_wrong_zip_encoding: Złe kodowanie Zip
warning_xapian_not_available: Xapian niedostępny
menu_dmsf: DMS # Project tab title
label_physical_file_delete: Fizyczne usuwanie plików
user_is_not_project_member: Nie jesteś przypisany do tego projektu

View File

@ -180,6 +180,7 @@ pt-BR:
criado"
error_file_can_not_be_created: "O arquivo não pode ser criado"
error_wrong_zip_encoding: Código Zip errado
warning_xapian_not_available: Xapian não disponível
menu_dmsf: DMS
label_physical_file_delete: Excluir fisicamente arquivo
user_is_not_project_member: Você não é um membro do projeto

View File

@ -180,6 +180,7 @@ sl:
error_file_can_not_be_created: Datoteke se ne da kreirat v mapi
error_wrong_zip_encoding: Napačen Zip nabor znakov
warning_xapian_not_available: Xapian ni na voljo
menu_dmsf: Arhiv # Project tab title
label_physical_file_delete: Brisanje datoteke (fizično)
user_is_not_project_member: Niste član projekta

View File

@ -181,6 +181,7 @@ uk:
error_file_can_not_be_created: "Неможливо створити файли в каталозі/директорії зберігання"
error_wrong_zip_encoding: Неправильне Zip-кодування
warning_xapian_not_available: Xapian not available
menu_dmsf: DMS # Project tab title - Заголовок вкладки DMS # Project
label_physical_file_delete: Фізичний файл видалено
user_is_not_project_member: Ви не є учасником проекту

View File

@ -180,6 +180,7 @@ zh-TW:
error_file_can_not_be_created: 在存儲目錄裡,無法建立檔案。
error_wrong_zip_encoding: 不正確的Zip encoding
warning_xapian_not_available: Xapian not available
menu_dmsf: 文件總管 # Project tab title
label_physical_file_delete: 永久刪除檔案
user_is_not_project_member: 您不是專案的成員之一

View File

@ -180,6 +180,7 @@ zh:
error_file_can_not_be_created: 文件未能在存储目录中创建
error_wrong_zip_encoding: 不正确的Zip编码
warning_xapian_not_available: Xapian not available
menu_dmsf: 文档管家 # Project tab title
label_physical_file_delete: 物理删除文件
user_is_not_project_member: 您不是该项目的成员

View File

@ -39,5 +39,14 @@ module RedmineDmsf
end
false
end
# Return true if Xapian binding is installed (gem ruby_xapian)
def self.xapian_available?
require 'xapian'
true
rescue LoadError => e
Rails.logger.warn e.message
false
end
end
end