From b0bb47136616fd94a7041d13141860683de5eef0 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Fri, 7 May 2021 03:20:49 +0000 Subject: [PATCH 1/4] update locales from crowdin [ci skip] --- config/locales/crowdin/ja.yml | 6 +++--- config/locales/crowdin/js-ja.yml | 6 +++--- config/locales/crowdin/sl.yml | 4 ++-- modules/boards/config/locales/crowdin/js-sl.yml | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/locales/crowdin/ja.yml b/config/locales/crowdin/ja.yml index fc76008b2a..bc44d6049e 100644 --- a/config/locales/crowdin/ja.yml +++ b/config/locales/crowdin/ja.yml @@ -66,7 +66,7 @@ ja: upgrade_to_ee: "エンタープライズ版にアップグレード" add_token: "エンタープライズ版サポートのトークンをアップロード" replace_token: "現在のサポート トークンを置き換え" - order: "エンタープライズ オンプレミス エディションを注文する" + order: "オンプレミス版エンタープライズエディションを注文する" paste: "エンタープライズ版サポートのトークンを貼り付け" required_for_feature: "この機能は、アクティブなエンタープライズ版のサポート トークンでのみ利用可能です。" enterprise_link: "詳細については、ここをクリックしてください。" @@ -1174,9 +1174,9 @@ ja: gui_validation_error_plural: "%{count}つエラー" homescreen: additional: - projects: "このインスタンスの、最新の表示されるプロジェクト。" + projects: "このインスタンスの最新の可視化プロジェクト。" no_visible_projects: "このインスタンスに表示されているプロジェクトはありません。" - users: "このインスタンスの、最新の登録ユーザー。" + users: "このインスタンスの最新の登録ユーザー。" blocks: community: "OpenProject コミュニティ" upsale: diff --git a/config/locales/crowdin/js-ja.yml b/config/locales/crowdin/js-ja.yml index 436d7a1f92..3a88c3acc1 100644 --- a/config/locales/crowdin/js-ja.yml +++ b/config/locales/crowdin/js-ja.yml @@ -206,7 +206,7 @@ ja: test_ee: "エンタープライズ版を14日間無料でテストする" quick_overview: "OpenProject Enterprise Edition でのプロジェクト管理とチームコラボレーションの概要をご確認ください。" upsale: - become_hero: "ヒーローになる!" + become_hero: "ヒーローになろう!" benefits: description: "オンプレミス版エンタープライズエディションにはどのようなメリットがありますか?" high_security: "セキュリティ機能" @@ -269,7 +269,7 @@ ja: homescreen: blocks: new_features: - text_new_features: "新しい機能と製品の更新について表示する" + text_new_features: "新しい機能と製品の更新について紹介します。" learn_about: "新機能の詳細はこちら" standard: learn_about_link: https://www.openproject.org/openproject-11-2-release @@ -466,7 +466,7 @@ ja: next: '次へ' got_it: '了承' steps: - help_menu: 'ヘルプメニューには、ユーザーガイドとその他のヘルプリソースがあります。
OpenProjectであなたの仕事をお楽しみください!' + help_menu: 'ヘルプメニューには、ユーザーガイドやその他のヘルプリソースがあります。
OpenProject と共にあなたの仕事を楽しんでください!' members: '新しいメンバーを招待してプロジェクトに参加してください。' project_selection: '便利なデモデータを含むプロジェクトを1つ選択して開始してください。
デモプロジェクトは伝統的なプロジェクト管理に最適ですが、スクラムプロジェクトはアジャイルプロジェクト管理に適しています。' sidebar_arrow: "矢印を使って、プロジェクトのメインメニューに戻ることができます。" diff --git a/config/locales/crowdin/sl.yml b/config/locales/crowdin/sl.yml index 2a534e0106..10fe168c3f 100644 --- a/config/locales/crowdin/sl.yml +++ b/config/locales/crowdin/sl.yml @@ -74,8 +74,8 @@ sl: book_now: 'Rezerviraj' get_quote: 'Pridobite ponudbo' announcements: - show_until: Pokažite dokler - is_active: Trenutno prikazano + show_until: Prikaži dokler + is_active: trenutno prikazano is_inactive: trenutno ni prikazano attribute_help_texts: note_public: 'Vsa dodana besedila in slike so javno vidna vsem prijavljenim uporabnikom!' diff --git a/modules/boards/config/locales/crowdin/js-sl.yml b/modules/boards/config/locales/crowdin/js-sl.yml index f7999278bb..f43fae7a6e 100644 --- a/modules/boards/config/locales/crowdin/js-sl.yml +++ b/modules/boards/config/locales/crowdin/js-sl.yml @@ -76,7 +76,7 @@ sl: warning: status: | Trenutno ni na voljo nobenega statusa
- Ali jih ni, ali pa so vsi že dodani na desko. + Ali jih ni, ali pa so vsi že dodani na tablo. assignee: Noben član se ne ujema z vrednostmi filtra.
no_member: Ta projekt trenutno nima članov, ki bi jih lahko dodali.
add_members: V ta projekt dodajte novega člana , da znova izberete uporabnike. From 3ed5a29d4687529220cb2c375c0b5536657c1a5c Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sat, 8 May 2021 03:15:13 +0000 Subject: [PATCH 2/4] update locales from crowdin [ci skip] --- config/locales/crowdin/ja.yml | 2 +- config/locales/crowdin/js-ja.yml | 4 ++-- config/locales/crowdin/pt.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/locales/crowdin/ja.yml b/config/locales/crowdin/ja.yml index bc44d6049e..c1d9f51e2d 100644 --- a/config/locales/crowdin/ja.yml +++ b/config/locales/crowdin/ja.yml @@ -66,7 +66,7 @@ ja: upgrade_to_ee: "エンタープライズ版にアップグレード" add_token: "エンタープライズ版サポートのトークンをアップロード" replace_token: "現在のサポート トークンを置き換え" - order: "オンプレミス版エンタープライズエディションを注文する" + order: "オンプレミス版 Enterprise Edition を注文する" paste: "エンタープライズ版サポートのトークンを貼り付け" required_for_feature: "この機能は、アクティブなエンタープライズ版のサポート トークンでのみ利用可能です。" enterprise_link: "詳細については、ここをクリックしてください。" diff --git a/config/locales/crowdin/js-ja.yml b/config/locales/crowdin/js-ja.yml index 3a88c3acc1..b759c398a0 100644 --- a/config/locales/crowdin/js-ja.yml +++ b/config/locales/crowdin/js-ja.yml @@ -208,7 +208,7 @@ ja: upsale: become_hero: "ヒーローになろう!" benefits: - description: "オンプレミス版エンタープライズエディションにはどのようなメリットがありますか?" + description: "オンプレミス版 Enterprise Edition にはどのようなメリットがありますか?" high_security: "セキュリティ機能" high_security_text: "シングルサインオン(SAML、OpenID Connect、CAS)、2要素認証、LDAPグループの自動同期。" installation: "インストールサポート" @@ -522,7 +522,7 @@ ja: 警告:フォーム設定をリセットしてもよろしいですか? これにより、属性が規定のグループにリセットされ、すべてのカスタムフィールドが無効になります。   コンテキスト| リクエストコンテキスト - upgrade_to_ee: "オンプレミス版エンタープライズエディションへのアップグレード" + upgrade_to_ee: "オンプレミス版 Enterprise Edition へのアップグレード" upgrade_to_ee_text: "この機能が必要な場合、あなたは超プロです! Enterprise Edition クライアントになることによって私達のオープン ソース開発者を支援していただけませんか?" more_information: "詳細情報" nevermind: "無視" diff --git a/config/locales/crowdin/pt.yml b/config/locales/crowdin/pt.yml index e83525ed73..f9c3339035 100644 --- a/config/locales/crowdin/pt.yml +++ b/config/locales/crowdin/pt.yml @@ -66,7 +66,7 @@ pt: upgrade_to_ee: "Atualizar para a Enterprise Edition" add_token: "Fazer upload de um token de suporte Enterprise Edition" replace_token: "Substitua seu token atual de suporte" - order: "Order Enterprise on-premises Edition" + order: "Ordem empresarial na edição local" paste: "Cole seu token de suporte Enterprise Edition" required_for_feature: "Esse recurso só está disponível com um token de suporte Enterprise Edition ativo." enterprise_link: "Para mais informações, clique aqui." From 911d56eee93d53b5e323242abdd533217352eb1e Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sun, 9 May 2021 03:14:27 +0000 Subject: [PATCH 3/4] update locales from crowdin [ci skip] --- config/locales/crowdin/zh-CN.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/crowdin/zh-CN.yml b/config/locales/crowdin/zh-CN.yml index d98648d2f3..2f8a54e888 100644 --- a/config/locales/crowdin/zh-CN.yml +++ b/config/locales/crowdin/zh-CN.yml @@ -66,7 +66,7 @@ zh-CN: upgrade_to_ee: "升级到企业版" add_token: "上传企业版支持令牌" replace_token: "替换您当前的支持令牌" - order: "Order Enterprise on-premises Edition" + order: "订购企业预置版。" paste: "粘贴您的企业版支持令牌" required_for_feature: "此功能仅限具有活动企业版支持令牌的订阅者使用。" enterprise_link: "如需了解详细信息,请单击此处。" @@ -246,7 +246,7 @@ zh-CN: irreversible: "此操作不可逆" confirmation: "Enter the placeholder user name %{name} to confirm the deletion." upsale: - title: Assign work to people that are not members of the project. + title: 将工作分配给非项目成员。 description: There are multiple scenarios where you want to assign work to people that are not member of your project. It could simply be that you still need to hire the correct person for the job. Or you just don't want to give that person access to the project's information but still want track tasks assigned to that person. prioritiies: edit: From fa3481523bf089062c305c0fc1b88f66a4644859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Mon, 10 May 2021 10:19:32 +0200 Subject: [PATCH 4/4] Avoid running oauth cleanup job after every authentication (#9241) * Avoid running oauth cleanup job after every authentication * Also run attachments job as 'cron' job --- app/models/attachment.rb | 7 ------- .../attachments/cleanup_uncontainered_job.rb | 5 ++++- app/workers/oauth/cleanup_job.rb | 6 +++++- config/initializers/cronjobs.rb | 4 +++- config/initializers/doorkeeper.rb | 4 ---- spec/models/attachment_spec.rb | 15 --------------- 6 files changed, 12 insertions(+), 29 deletions(-) diff --git a/app/models/attachment.rb b/app/models/attachment.rb index b2b8189158..9d6570d906 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -53,9 +53,6 @@ class Attachment < ApplicationRecord after_commit :extract_fulltext, on: :create - after_create :schedule_cleanup_uncontainered_job, - unless: :containered? - ## # Returns an URL if the attachment is stored in an external (fog) attachment storage # or nil otherwise. @@ -292,10 +289,6 @@ class Attachment < ApplicationRecord private - def schedule_cleanup_uncontainered_job - Attachments::CleanupUncontaineredJob.perform_later - end - def filesize_below_allowed_maximum if filesize > Setting.attachment_max_size.to_i.kilobytes errors.add(:file, :file_too_large, count: Setting.attachment_max_size.to_i.kilobytes) diff --git a/app/workers/attachments/cleanup_uncontainered_job.rb b/app/workers/attachments/cleanup_uncontainered_job.rb index b388663928..415273dfdd 100644 --- a/app/workers/attachments/cleanup_uncontainered_job.rb +++ b/app/workers/attachments/cleanup_uncontainered_job.rb @@ -28,9 +28,12 @@ # See docs/COPYRIGHT.rdoc for more details. #++ -class Attachments::CleanupUncontaineredJob < ApplicationJob +class Attachments::CleanupUncontaineredJob < ::Cron::CronJob queue_with_priority :low + # runs at 10:03 pm + self.cron_expression = '03 22 * * *' + def perform Attachment .where(container: nil) diff --git a/app/workers/oauth/cleanup_job.rb b/app/workers/oauth/cleanup_job.rb index 47cef9f8cc..5067583761 100644 --- a/app/workers/oauth/cleanup_job.rb +++ b/app/workers/oauth/cleanup_job.rb @@ -29,9 +29,13 @@ #++ module OAuth - class CleanupJob < ::ApplicationJob + class CleanupJob < ::Cron::CronJob include ::RakeJob + # runs at 1:52 nightly + self.cron_expression = '52 1 * * *' + + queue_with_priority :low def perform diff --git a/config/initializers/cronjobs.rb b/config/initializers/cronjobs.rb index 00e14d88fc..116d397a2b 100644 --- a/config/initializers/cronjobs.rb +++ b/config/initializers/cronjobs.rb @@ -4,6 +4,8 @@ OpenProject::Application.configure do |application| application.config.to_prepare do ::Cron::CronJob.register! ::Cron::ClearOldSessionsJob, ::Cron::ClearTmpCacheJob, - ::Cron::ClearUploadedFilesJob + ::Cron::ClearUploadedFilesJob, + ::OAuth::CleanupJob, + ::Attachments::CleanupUncontaineredJob end end diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb index 7c8bd6f353..12819f0940 100644 --- a/config/initializers/doorkeeper.rb +++ b/config/initializers/doorkeeper.rb @@ -183,10 +183,6 @@ Doorkeeper.configure do # Rails.logger.info(params.inspect) # end # - after_successful_authorization do |_controller| - # Schedule a cleanup job to clean out over-TTL tokens and grants - ::OAuth::CleanupJob.perform_later - end # Under some circumstances you might want to have applications auto-approved, # so that the user skips the authorization step. diff --git a/spec/models/attachment_spec.rb b/spec/models/attachment_spec.rb index 5959c40640..9d9d49611f 100644 --- a/spec/models/attachment_spec.rb +++ b/spec/models/attachment_spec.rb @@ -174,21 +174,6 @@ describe Attachment, type: :model do expect(attachment.digest) .to eql Digest::MD5.file(file.path).hexdigest end - - it 'adds no cleanup job' do - expect(Attachments::CleanupUncontaineredJob).not_to receive(:perform_later) - - attachment.save! - end - - context 'with an unclaimed attachment' do - let(:container) { nil } - - it 'adds a cleanup job' do - expect(Attachments::CleanupUncontaineredJob).to receive(:perform_later) - attachment.save! - end - end end describe 'two attachments with same file name' do