1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.whatsnew.service.daemon;
35
36 import fr.paris.lutece.plugins.whatsnew.business.PortletDocumentLink;
37 import fr.paris.lutece.plugins.whatsnew.business.portlet.WhatsNewPortlet;
38 import fr.paris.lutece.plugins.whatsnew.service.WhatsNewPlugin;
39 import fr.paris.lutece.plugins.whatsnew.service.WhatsNewService;
40 import fr.paris.lutece.plugins.whatsnew.service.portlet.WhatsNewPortletService;
41 import fr.paris.lutece.plugins.whatsnew.utils.constants.WhatsNewConstants;
42 import fr.paris.lutece.portal.service.daemon.Daemon;
43 import fr.paris.lutece.portal.service.plugin.Plugin;
44 import fr.paris.lutece.portal.service.plugin.PluginService;
45 import fr.paris.lutece.portal.service.util.AppPropertiesService;
46
47 import java.sql.Timestamp;
48
49 import java.util.List;
50 import java.util.Locale;
51
52
53
54
55
56
57
58 public class DaemonCleanerModeratedElements extends Daemon
59 {
60
61
62
63 public void run( )
64 {
65 Plugin plugin = PluginService.getPlugin( WhatsNewPlugin.PLUGIN_NAME );
66
67 for ( WhatsNewPortlet portlet : WhatsNewPortletService.getInstance( ).selectAll( ) )
68 {
69 String strLanguage = AppPropertiesService.getProperty( WhatsNewConstants.PROPERTY_DAEMON_MODERATED_ELEMENTS_CLEANER_LANGUAGE,
70 "fr" );
71 Locale locale = new Locale( strLanguage );
72 Timestamp limitTimestamp = WhatsNewService.getInstance( )
73 .getTimestampFromPeriodAndCurrentDate( portlet.getPeriod( ),
74 locale );
75
76
77 List<Integer> listPageIds = WhatsNewPortletService.getInstance( )
78 .getPageIdsFromWhatsNewId( portlet.getId( ), plugin );
79
80 for ( int nPageId : listPageIds )
81 {
82 if ( WhatsNewService.getInstance( ).isPageOutOfDate( nPageId, limitTimestamp ) )
83 {
84 WhatsNewPortletService.getInstance( ).removeModeratedPage( portlet.getId( ), nPageId, plugin );
85 }
86 }
87
88
89 List<Integer> listPortletIds = WhatsNewPortletService.getInstance( )
90 .getPortletIdsFromWhatsNewId( portlet.getId( ), plugin );
91
92 for ( int nPortletId : listPortletIds )
93 {
94 if ( WhatsNewService.getInstance( ).isPortletOutOfDate( nPortletId, limitTimestamp ) )
95 {
96 WhatsNewPortletService.getInstance( ).removeModeratedPortlet( portlet.getId( ), nPortletId, plugin );
97 }
98 }
99
100
101 List<PortletDocumentLink> listLinks = WhatsNewPortletService.getInstance( )
102 .getDocumentsFromWhatsNewId( portlet.getId( ),
103 plugin );
104 Plugin pluginDocument = PluginService.getPlugin( WhatsNewConstants.DOCUMENT_PLUGIN_NAME );
105
106 for ( PortletDocumentLink pdLink : listLinks )
107 {
108 if ( WhatsNewService.getInstance( ).isDocumentOutOfDate( pdLink, limitTimestamp, pluginDocument ) )
109 {
110 WhatsNewPortletService.getInstance( ).removeModeratedDocument( portlet.getId( ), pdLink, plugin );
111 }
112 }
113 }
114 }
115 }