Interacts with Jira RESTful web service and supports only get method. Moreover it does
basic authentication check using org.libreplan.ws.common.impl.Util.addAuthorizationHeader()
An implementation of the interface IJiraTimesheetSynchronizer.
It synchronizes the timesheets of order-tasks of an existing order with jira issues.
Loops through all jira issues and creates or updates timesheets(WorkReports) for an
existing order. As a pre condition a WorkReportType with the name 'jira-connector'
must be created and configured properly prior to synchronization of timesheets.
An implementation of the interface IJiraOrderElementSynchronizer.
It synchronizes order-elements inclusive progress assignments and measurements of an
existing order with jira issues.
Loops through all jira issues and creates or updates order-lines/order-elements, hoursgroup,
progress assignments and measurements
An interface that JiraTimesheetSynchronizer implements.
It synchronizes the timesheets of order-tasks of an existing order with jira issues
A WorkReportType object with the name 'jira-connector' must exist and configured properly
prior to start synchronization of timesheets
An interface that JiraOrderElementSynchronizer implements.
It synchronizes order-elements inclusive progress assignments and measurements of
an existing order with jira issues
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.