It will substract N months to the current date and use it as the start
date for the compan view filtering, being N the 'projects since'
parameter on the user settings tab.
Similarly, it will add M months to the current date and use it as
the filtering end date with the specified parameter.
FEA: ItEr77S15FilteringEnhancements
The modules names are obtained from the *.wpd files.
The version value should be updated every time we release a new LibrePlan
version.
FEA: ItEr77S04BugFixing
Otherwise the MutableTreeModel associated is initialized with a Order
that is not saved yet. When it's used, e.g., when adding a
subtask, it fails.
The MutableTreeModel#nodesByDomainObject map wouldn't find the node
associated to the Order, because the hashCode is different. At first
the Order is a new object so it returns a different hashCode, once
saved another. With these changes, when initializing the
MutableTreeModel it has already been saved.
A mechanism for ignoring in a scope the calls to createBindings has
been added. When accessing from the entry point the page is been
created and the AnnotatedDataBinder created automatically will track
the created tab. So in these cases we must ignore createBindings
calls.
Sometimes reloadBindings is called several times in the same request.
Now only the first call would force the reload and the others would be
ignored.
For example, when switching to Projects List reloadBindings is called
after the tab being created and another time when calling
org.libreplan.web.orders.OrderCRUDController.goToList(). Now the
second call is ignored.
Fix 2 issues in Util.createBindingsFor:
* Avoid to go over all the children of the component as it seems enough with
create the data binder in the root component.
* Avoid to call .loadAll() for each binder as the method Util.reloadBindings is
usually used before when needed.
FEA: ItEr77S04BugFixing
The problem was that OrderModel.getOrders() was been called several times to
show the list of projects.
After reviewing the problem several issues were detected:
* Util.createBindingsFor was always calling .loadAll() for each binder it
creates, however this was not needed. Moreover a lot of times
Util.reloadBindings is called just after Util.createBindings so the same thing
is called twice.
* If you go via the entry point or the icon to the project list, the binder for
the page is properly initialized or not. If you come from the entry point, the
binder is already working as expected, however if you come from the icon the
binder has to be created manually. It has been added a method
CreatedOnDemandTab.afterCreateAction() that is called or not depending if the
user comes from the entry point or the icon.
FEA: ItEr77S04BugFixing