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
4faf7b3bc7
commit
d560c5d548
@ -167,7 +167,7 @@ defmodule Mobilizon.Events.Event do
|
||||
case fetch_field(changeset, :begins_on) do
|
||||
{_, begins_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"],
|
||||
else: []
|
||||
end)
|
||||
|
Loading…
Reference in New Issue
Block a user