mirror of
https://framagit.org/framasoft/mobilizon.git
synced 2024-12-26 01:38:36 +00:00
fix compare begin and end dates
this bug prevent from creating an event with the day of month of the begin date greater than the day of month of the end date, event if end date is effectively greater than begin date. for example, if the begin date is '2020-04-28' and end date is '2020-05-13', these dates are valid but because 28 > 13, the validation fails. this is better explained in this article ["Never compare dates in Elixir using < or >"](https://blog.leif.io/never-use-to-compare-dates/). using Date.compare, as proposed in this PR fix the issue.
This commit is contained in:
parent
4630491fa4
commit
01bdd7b344
1 changed files with 1 additions and 1 deletions
|
@ -167,7 +167,7 @@ defmodule Mobilizon.Events.Event do
|
||||||
case fetch_field(changeset, :begins_on) do
|
case fetch_field(changeset, :begins_on) do
|
||||||
{_, begins_on} ->
|
{_, begins_on} ->
|
||||||
validate_change(changeset, :ends_on, fn :ends_on, ends_on ->
|
validate_change(changeset, :ends_on, fn :ends_on, ends_on ->
|
||||||
if begins_on > ends_on,
|
if Date.compare(begins_on, ends_on) == :gt,
|
||||||
do: [ends_on: "ends_on cannot be set before begins_on"],
|
do: [ends_on: "ends_on cannot be set before begins_on"],
|
||||||
else: []
|
else: []
|
||||||
end)
|
end)
|
||||||
|
|
Loading…
Reference in a new issue