AppProperties entity has been removed as it stores the same information
(majorId) repeated in each database record and it doesn't match with the real
model that we need.
A new entity Connector with a majorId identifier has been created, this entity
contains a list of properties (pairs key-value).
Moreover it has been created the predefined Tim connector with its own
properties (predefined too).
For new connectors, apart from the specific classes implementing them it would
be only needed to modify PredefinedConnectors and PredefinedConnectorProperties.
The database will be updated automatically on LibrePlan startup thanks to the
ConnectorBootstrap.
FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
- Import rosters for all departments configured in DB implemented
- Unneeded checks for resource calendar removed
- Some hardcoded strings moved to constants
- Exception with 0h effort allowed
- confirmSave is used to update exceptions
- RESOURCE_HOLIDAY or BANK_HOLIDAY used correctly
- calculating exception hours solved
* Renamed .zul file and page to "Job Scheduling".
* Include ROLE_JOB_SCHEDULING in default profile SYSTEMS_ADMINISTRATOR.
FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
Like in the case of JIRA, the Tim synchronization UI in the project edition will
only appear if Tim connector is activated.
FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
Lots of changes:
* Created a new model to follow the standard structure of controllers in
LibrePlan.
* Marked several strings to be internationalized.
* Improved .zul page, removing unneeded stuff and simplifying code.
* Checked that cron expression is right, otherwise inform the user.
FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
Maybe it's not needed to get all workers, so the call to findAll has been changed by findByCode.
Moreover, it was using code in ExportTimesheetsToTim and NIF in
ImportRosterFromTim which was not coherent, so it has been changed to use code
in both places.
FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
It makes code simpler than using Calendar API, and it's the common way to manage
dates into LibrePlan.
FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
DTO classes are renamed to class-name with suffix DTO according to Libreplan naming convention
Modified all classes which are affected by the renamed classes
Comments and author information added where applicable
Test cases modified
An implementation of the interface IImportRosterFromTim
It import rosters from Tim convert them to workers calendar exception. If
worker's calendar exception already exists it updates effort duration, otherwise
creates new worker's calendar exception.
This client creates SOAP message, makes connection to the SOAP server, sends
the request and processes the response. It uses jaxb lirary to marshal and
unmarshal the request and response.
An implementation of the interface ISchedulerManager
Dynamically creates jobs and cron triggers. It associated the triggers with the jobs and add
them to the scheduler. It also supports the rescheduling of jobs.
An interface that SchedulerManager implements.
Dynamically creates jobs and cron triggers. It associated the triggers with the jobs and add
them to the scheduler. It also supports the rescheduling of jobs.
This is the job that is scheduled by the scheduler to import rosters from Tim SOAP server.
It is executed based on the cron-expression defined for this job.
An implementation of the interface IImportRosterFromTim
It import rosters from Tim convert them to workers calendar exception. If
worker's calendar exception already exists it updates effort duration, otherwise
creates new worker's calendar exception.
An interface that ImportRosterFromTim implements
It import Rosters from Tim SOAP server and convert them to workers calendar Exception.
If workers calendar exception already existis it updates the effort duration, otherwise
creates new worker's calendar exception
This is the job that is scheduled by the scheduler to export timesheets to tim SOAP server
It is executed based on the cron-expression defined for this job.
getIssues gets now the issues from jira in one request. This is done by adding a
query fields with desired fields to be included in response. Moreover the max_results
is now outside if(!query.isEmpty) statetment.
Test case is modified to read label from jira-properties instead of hard coded