Fix poll validation issues (#10186)
- Fix missing interpolation argument in PollValidator - Fix PollValidator rejecting exact allowed min/max durations
This commit is contained in:
		@@ -13,7 +13,7 @@ class PollValidator < ActiveModel::Validator
 | 
				
			|||||||
    poll.errors.add(:options, I18n.t('polls.errors.too_many_options', max: MAX_OPTIONS)) if poll.options.size > MAX_OPTIONS
 | 
					    poll.errors.add(:options, I18n.t('polls.errors.too_many_options', max: MAX_OPTIONS)) if poll.options.size > MAX_OPTIONS
 | 
				
			||||||
    poll.errors.add(:options, I18n.t('polls.errors.over_character_limit', max: MAX_OPTION_CHARS)) if poll.options.any? { |option| option.mb_chars.grapheme_length > MAX_OPTION_CHARS }
 | 
					    poll.errors.add(:options, I18n.t('polls.errors.over_character_limit', max: MAX_OPTION_CHARS)) if poll.options.any? { |option| option.mb_chars.grapheme_length > MAX_OPTION_CHARS }
 | 
				
			||||||
    poll.errors.add(:options, I18n.t('polls.errors.duplicate_options')) unless poll.options.uniq.size == poll.options.size
 | 
					    poll.errors.add(:options, I18n.t('polls.errors.duplicate_options')) unless poll.options.uniq.size == poll.options.size
 | 
				
			||||||
    poll.errors.add(:expires_at, I18n.t('polls.errors.duration_too_long')) if poll.expires_at.nil? || poll.expires_at - current_time >= MAX_EXPIRATION
 | 
					    poll.errors.add(:expires_at, I18n.t('polls.errors.duration_too_long')) if poll.expires_at.nil? || poll.expires_at - current_time > MAX_EXPIRATION
 | 
				
			||||||
    poll.errors.add(:expires_at, I18n.t('polls.errors.duration_too_short')) if poll.expires_at.present? && poll.expires_at - current_time <= MIN_EXPIRATION
 | 
					    poll.errors.add(:expires_at, I18n.t('polls.errors.duration_too_short')) if poll.expires_at.present? && poll.expires_at - current_time < MIN_EXPIRATION
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -741,9 +741,9 @@ co:
 | 
				
			|||||||
      duration_too_long: hè troppu luntanu indè u futuru
 | 
					      duration_too_long: hè troppu luntanu indè u futuru
 | 
				
			||||||
      duration_too_short: hè troppu prossimu
 | 
					      duration_too_short: hè troppu prossimu
 | 
				
			||||||
      expired: U scandagliu hè digià finitu
 | 
					      expired: U scandagliu hè digià finitu
 | 
				
			||||||
      over_character_limit: ùn ponu micca esse più longhi chè %{MAX} caratteri
 | 
					      over_character_limit: ùn ponu micca esse più longhi chè %{max} caratteri
 | 
				
			||||||
      too_few_options: deve avè più d'un'uzzione
 | 
					      too_few_options: deve avè più d'un'uzzione
 | 
				
			||||||
      too_many_options: ùn pò micca avè più di %{MAX} uzzione
 | 
					      too_many_options: ùn pò micca avè più di %{max} uzzione
 | 
				
			||||||
  preferences:
 | 
					  preferences:
 | 
				
			||||||
    languages: Lingue
 | 
					    languages: Lingue
 | 
				
			||||||
    other: Altre
 | 
					    other: Altre
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -752,9 +752,9 @@ cs:
 | 
				
			|||||||
      duration_too_long: je příliš daleko v budoucnosti
 | 
					      duration_too_long: je příliš daleko v budoucnosti
 | 
				
			||||||
      duration_too_short: je příliš brzy
 | 
					      duration_too_short: je příliš brzy
 | 
				
			||||||
      expired: Anketa již skončila
 | 
					      expired: Anketa již skončila
 | 
				
			||||||
      over_character_limit: nesmí být každá delší než %{MAX} znaků
 | 
					      over_character_limit: nesmí být každá delší než %{max} znaků
 | 
				
			||||||
      too_few_options: musí mít více než jednu položku
 | 
					      too_few_options: musí mít více než jednu položku
 | 
				
			||||||
      too_many_options: nesmí obsahovat více než %{MAX} položky
 | 
					      too_many_options: nesmí obsahovat více než %{max} položky
 | 
				
			||||||
  preferences:
 | 
					  preferences:
 | 
				
			||||||
    languages: Jazyky
 | 
					    languages: Jazyky
 | 
				
			||||||
    other: Ostatní
 | 
					    other: Ostatní
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -740,9 +740,9 @@ el:
 | 
				
			|||||||
      duration_too_long: είναι πολύ μακριά στο μέλλον
 | 
					      duration_too_long: είναι πολύ μακριά στο μέλλον
 | 
				
			||||||
      duration_too_short: είναι πολύ σύντομα
 | 
					      duration_too_short: είναι πολύ σύντομα
 | 
				
			||||||
      expired: Η ψηφοφορία έχει ήδη λήξει
 | 
					      expired: Η ψηφοφορία έχει ήδη λήξει
 | 
				
			||||||
      over_character_limit: δε μπορεί να υπερβαίνει τους %{MAX} χαρακτήρες έκαστη
 | 
					      over_character_limit: δε μπορεί να υπερβαίνει τους %{max} χαρακτήρες έκαστη
 | 
				
			||||||
      too_few_options: πρέπει να έχει περισσότερες από μια επιλογές
 | 
					      too_few_options: πρέπει να έχει περισσότερες από μια επιλογές
 | 
				
			||||||
      too_many_options: δεν μπορεί να έχει περισσότερες από %{MAX} επιλογές
 | 
					      too_many_options: δεν μπορεί να έχει περισσότερες από %{max} επιλογές
 | 
				
			||||||
  preferences:
 | 
					  preferences:
 | 
				
			||||||
    languages: Γλώσσες
 | 
					    languages: Γλώσσες
 | 
				
			||||||
    other: Άλλο
 | 
					    other: Άλλο
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -741,9 +741,9 @@ en:
 | 
				
			|||||||
      duration_too_long: is too far into the future
 | 
					      duration_too_long: is too far into the future
 | 
				
			||||||
      duration_too_short: is too soon
 | 
					      duration_too_short: is too soon
 | 
				
			||||||
      expired: The poll has already ended
 | 
					      expired: The poll has already ended
 | 
				
			||||||
      over_character_limit: cannot be longer than %{MAX} characters each
 | 
					      over_character_limit: cannot be longer than %{max} characters each
 | 
				
			||||||
      too_few_options: must have more than one item
 | 
					      too_few_options: must have more than one item
 | 
				
			||||||
      too_many_options: can't contain more than %{MAX} items
 | 
					      too_many_options: can't contain more than %{max} items
 | 
				
			||||||
  preferences:
 | 
					  preferences:
 | 
				
			||||||
    languages: Languages
 | 
					    languages: Languages
 | 
				
			||||||
    other: Other
 | 
					    other: Other
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -741,9 +741,9 @@ fa:
 | 
				
			|||||||
      duration_too_long: در آیندهٔ خیلی دور است
 | 
					      duration_too_long: در آیندهٔ خیلی دور است
 | 
				
			||||||
      duration_too_short: در آیندهٔ خیلی نزدیک است
 | 
					      duration_too_short: در آیندهٔ خیلی نزدیک است
 | 
				
			||||||
      expired: این نظرسنجی به پایان رسیده است
 | 
					      expired: این نظرسنجی به پایان رسیده است
 | 
				
			||||||
      over_character_limit: هر کدام نمیتواند از %{MAX} نویسه طولانیتر باشد
 | 
					      over_character_limit: هر کدام نمیتواند از %{max} نویسه طولانیتر باشد
 | 
				
			||||||
      too_few_options: حتماً باید بیش از یک گزینه داشته باشد
 | 
					      too_few_options: حتماً باید بیش از یک گزینه داشته باشد
 | 
				
			||||||
      too_many_options: نمیتواند بیشتر از %{MAX} گزینه داشته باشد
 | 
					      too_many_options: نمیتواند بیشتر از %{max} گزینه داشته باشد
 | 
				
			||||||
  preferences:
 | 
					  preferences:
 | 
				
			||||||
    languages: تنظیمات زبان
 | 
					    languages: تنظیمات زبان
 | 
				
			||||||
    other: سایر تنظیمات
 | 
					    other: سایر تنظیمات
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -741,9 +741,9 @@ fr:
 | 
				
			|||||||
      duration_too_long: est trop loin dans le futur
 | 
					      duration_too_long: est trop loin dans le futur
 | 
				
			||||||
      duration_too_short: est trop tôt
 | 
					      duration_too_short: est trop tôt
 | 
				
			||||||
      expired: Ce sondage est déjà terminé
 | 
					      expired: Ce sondage est déjà terminé
 | 
				
			||||||
      over_character_limit: ne peuvent être plus long que %{MAX} caractères chacun
 | 
					      over_character_limit: ne peuvent être plus long que %{max} caractères chacun
 | 
				
			||||||
      too_few_options: doit avoir plus qu'une proposition
 | 
					      too_few_options: doit avoir plus qu'une proposition
 | 
				
			||||||
      too_many_options: ne peut contenir plus que %{MAX} propositions
 | 
					      too_many_options: ne peut contenir plus que %{max} propositions
 | 
				
			||||||
  preferences:
 | 
					  preferences:
 | 
				
			||||||
    languages: Langues
 | 
					    languages: Langues
 | 
				
			||||||
    other: Autre
 | 
					    other: Autre
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -741,9 +741,9 @@ gl:
 | 
				
			|||||||
      duration_too_long: está moi lonxe no futuro
 | 
					      duration_too_long: está moi lonxe no futuro
 | 
				
			||||||
      duration_too_short: é demasiado cedo
 | 
					      duration_too_short: é demasiado cedo
 | 
				
			||||||
      expired: A sondaxe rematou
 | 
					      expired: A sondaxe rematou
 | 
				
			||||||
      over_character_limit: non poden ter máis de %{MAX} caracteres cada unha
 | 
					      over_character_limit: non poden ter máis de %{max} caracteres cada unha
 | 
				
			||||||
      too_few_options: debe ter máis de unha opción
 | 
					      too_few_options: debe ter máis de unha opción
 | 
				
			||||||
      too_many_options: non pode haber máis de %{MAX} opcións
 | 
					      too_many_options: non pode haber máis de %{max} opcións
 | 
				
			||||||
  preferences:
 | 
					  preferences:
 | 
				
			||||||
    languages: Idiomas
 | 
					    languages: Idiomas
 | 
				
			||||||
    other: Outro
 | 
					    other: Outro
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -743,9 +743,9 @@ ko:
 | 
				
			|||||||
      duration_too_long: 너무 먼 미래입니다
 | 
					      duration_too_long: 너무 먼 미래입니다
 | 
				
			||||||
      duration_too_short: 너무 가깝습니다
 | 
					      duration_too_short: 너무 가깝습니다
 | 
				
			||||||
      expired: 투표가 이미 끝났습니다
 | 
					      expired: 투표가 이미 끝났습니다
 | 
				
			||||||
      over_character_limit: 각각 %{MAX} 글자를 넘을 수 없습니다
 | 
					      over_character_limit: 각각 %{max} 글자를 넘을 수 없습니다
 | 
				
			||||||
      too_few_options: 한가지 이상의 항목을 포함해야 합니다
 | 
					      too_few_options: 한가지 이상의 항목을 포함해야 합니다
 | 
				
			||||||
      too_many_options: 항목은 %{MAX}개를 넘을 수 없습니다
 | 
					      too_many_options: 항목은 %{max}개를 넘을 수 없습니다
 | 
				
			||||||
  preferences:
 | 
					  preferences:
 | 
				
			||||||
    languages: 언어
 | 
					    languages: 언어
 | 
				
			||||||
    other: 기타
 | 
					    other: 기타
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -752,9 +752,9 @@ sk:
 | 
				
			|||||||
      duration_too_long: je príliš ďaleko do budúcnosti
 | 
					      duration_too_long: je príliš ďaleko do budúcnosti
 | 
				
			||||||
      duration_too_short: je príliš skoro
 | 
					      duration_too_short: je príliš skoro
 | 
				
			||||||
      expired: Anketa už skončila
 | 
					      expired: Anketa už skončila
 | 
				
			||||||
      over_character_limit: každá nemôže byť dlhšia ako %{MAX} znakov
 | 
					      over_character_limit: každá nemôže byť dlhšia ako %{max} znakov
 | 
				
			||||||
      too_few_options: musí mať viac ako jednu položku
 | 
					      too_few_options: musí mať viac ako jednu položku
 | 
				
			||||||
      too_many_options: nemôže zahŕňať viac ako %{MAX} položiek
 | 
					      too_many_options: nemôže zahŕňať viac ako %{max} položiek
 | 
				
			||||||
  preferences:
 | 
					  preferences:
 | 
				
			||||||
    languages: Jazyky
 | 
					    languages: Jazyky
 | 
				
			||||||
    other: Ostatné
 | 
					    other: Ostatné
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user