Rev 1634 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1634 | Rev 1635 | ||
---|---|---|---|
1 | <%@ page import="pt.estgp.estgweb.domain.Teacher" %> |
1 | <%@ page import="pt.estgp.estgweb.domain.Teacher" %> |
2 | <%@ page import="pt.estgp.estgweb.domain.TeacherImpl" %> |
2 | <%@ page import="pt.estgp.estgweb.domain.TeacherImpl" %> |
3 | <%@ page import="jomm.utils.MessageResources" %> |
3 | <%@ page import="jomm.utils.MessageResources" %> |
4 | <%@ page import="java.util.Collections" %> |
4 | <%@ page import="java.util.Collections" %> |
5 | <%@ page import="pt.estgp.estgweb.domain.views.utils.CourseUnitDeliverableComparator" %> |
5 | <%@ page import="pt.estgp.estgweb.domain.views.utils.CourseUnitDeliverableComparator" %> |
6 | <%@ page import="org.json.JSONObject" %> |
6 | <%@ page import="org.json.JSONObject" %> |
7 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
7 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
8 | <%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
8 | <%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
9 | <%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
9 | <%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
10 | <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
10 | <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
11 | <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
11 | <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
12 | <%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
12 | <%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
13 | <%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
13 | <%@ taglib uri="/WEB-INF/tlds/baco.tld" prefix="baco" %> |
14 | <%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
14 | <%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
15 | <jsp:useBean id="CourseUnitsForm" type="pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm" scope="request"/> |
15 | <jsp:useBean id="CourseUnitsForm" type="pt.estgp.estgweb.web.form.courseunits.CourseUnitsForm" scope="request"/> |
16 | <jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
16 | <jsp:useBean id="CourseUnitView" type="pt.estgp.estgweb.domain.views.CourseUnitView" scope="request"/> |
17 | <jsp:useBean id="CourseUnitAssignementView" type="pt.estgp.estgweb.domain.views.CourseUnitAssignementView" scope="request"/> |
17 | <jsp:useBean id="CourseUnitAssignementView" type="pt.estgp.estgweb.domain.views.CourseUnitAssignementView" scope="request"/> |
18 | <jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
18 | <jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
19 | <div id="contentIntranet"> |
19 | <div id="contentIntranet"> |
20 | <div id="contentPane"> |
20 | <div id="contentPane"> |
21 | <html:errors/> |
21 | <html:errors/> |
22 | <jomm:messages/> |
22 | <jomm:messages/> |
23 | 23 | ||
24 | <div class="panel panel-default"> |
24 | <div class="panel panel-default"> |
25 | <div class="panel-heading"> |
25 | <div class="panel-heading"> |
26 | <bean:message key="courseunit.assignement" arg0="${CourseUnitAssignementView.title}"/> |
26 | <bean:message key="courseunit.assignement" arg0="${CourseUnitAssignementView.title}"/> |
27 | </div> |
27 | </div> |
28 | <div class="panel-body"> |
28 | <div class="panel-body"> |
29 | <table class="tablesorter-blue"> |
29 | <table class="tablesorter-blue"> |
30 | <tr> |
30 | <tr> |
31 | <th> |
31 | <th> |
32 | <bean:message key="courseunit.title"/> |
32 | <bean:message key="courseunit.title"/> |
33 | </th> |
33 | </th> |
34 | <td> |
34 | <td> |
35 | <bean:write name="CourseUnitAssignementView" property="title"/> |
35 | <bean:write name="CourseUnitAssignementView" property="title"/> |
36 | </td> |
36 | </td> |
37 | </tr> |
37 | </tr> |
38 | <tr> |
38 | <tr> |
39 | <th> |
39 | <th> |
40 | <bean:message key="courseunit.assignement.deliver.date"/> |
40 | <bean:message key="courseunit.assignement.deliver.date"/> |
41 | </th> |
41 | </th> |
42 | <td> |
42 | <td> |
43 | <bean:write name="CourseUnitAssignementView" property="deliverDate"/> |
43 | <bean:write name="CourseUnitAssignementView" property="deliverDate"/> |
44 | </td> |
44 | </td> |
45 | </tr> |
45 | </tr> |
46 | <tr> |
46 | <tr> |
47 | <th> |
47 | <th> |
48 | <bean:message key="courseunit.assignement.deliver.type"/> |
48 | <bean:message key="courseunit.assignement.deliver.type"/> |
49 | </th> |
49 | </th> |
50 | <td> |
50 | <td> |
51 | <bean:message key="courseunit.assignement.deliver.type.${CourseUnitAssignementView.deliverType}"/> |
51 | <bean:message key="courseunit.assignement.deliver.type.${CourseUnitAssignementView.deliverType}"/> |
52 | </td> |
52 | </td> |
53 | </tr> |
53 | </tr> |
54 | <tr> |
54 | <tr> |
55 | <th> |
55 | <th> |
56 | <bean:message key="courseunit.assignement.deliver.late.permission"/> |
56 | <bean:message key="courseunit.assignement.deliver.late.permission"/> |
57 | </th> |
57 | </th> |
58 | <td> |
58 | <td> |
59 | <logic:equal value="true" name="CourseUnitAssignementView" property="lateDelivers"> |
59 | <logic:equal value="true" name="CourseUnitAssignementView" property="lateDelivers"> |
60 | <bean:message key="yes"/> |
60 | <bean:message key="yes"/> |
61 | </logic:equal> |
61 | </logic:equal> |
62 | <logic:notEqual value="true" name="CourseUnitAssignementView" property="lateDelivers"> |
62 | <logic:notEqual value="true" name="CourseUnitAssignementView" property="lateDelivers"> |
63 | <bean:message key="no"/> |
63 | <bean:message key="no"/> |
64 | </logic:notEqual> |
64 | </logic:notEqual> |
65 | </td> |
65 | </td> |
66 | </tr> |
66 | </tr> |
67 | <tr> |
67 | <tr> |
68 | <th> |
68 | <th> |
69 | <bean:message key="courseunit.description"/> |
69 | <bean:message key="courseunit.description"/> |
70 | </th> |
70 | </th> |
71 | <td> |
71 | <td> |
72 | ${CourseUnitAssignementView.formatedDescription} |
72 | ${CourseUnitAssignementView.formatedDescription} |
73 | </td> |
73 | </td> |
74 | </tr> |
74 | </tr> |
75 | <tr> |
75 | <tr> |
76 | <th> |
76 | <th> |
77 | <bean:message key="courseunit.status"/> |
77 | <bean:message key="courseunit.status"/> |
78 | </th> |
78 | </th> |
79 | <td> |
79 | <td> |
80 | <logic:equal value="true" name="CourseUnitAssignementView" property="status"> |
80 | <logic:equal value="true" name="CourseUnitAssignementView" property="status"> |
81 | <bean:message key="status.active"/> |
81 | <bean:message key="status.active"/> |
82 | </logic:equal> |
82 | </logic:equal> |
83 | <logic:notEqual value="true" name="CourseUnitAssignementView" property="status"> |
83 | <logic:notEqual value="true" name="CourseUnitAssignementView" property="status"> |
84 | <bean:message key="status.inactive"/> |
84 | <bean:message key="status.inactive"/> |
85 | </logic:notEqual> |
85 | </logic:notEqual> |
86 | </td> |
86 | </td> |
87 | </tr> |
87 | </tr> |
88 | <logic:notEmpty name="CourseUnitAssignementView" property="workFile"> |
88 | <logic:notEmpty name="CourseUnitAssignementView" property="workFile"> |
89 | <tr> |
89 | <tr> |
90 | <th> |
90 | <th> |
91 | <bean:message key="courseunit.assignement.file"/> |
91 | <bean:message key="courseunit.assignement.file"/> |
92 | </th> |
92 | </th> |
93 | <td> |
93 | <td> |
94 | <a target="_blank" href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitAssignementView.workFile}"><bean:message key="courseunit.assignement.file"/></a> |
94 | <a target="_blank" href="<%=request.getContextPath()%>/repositoryStream/${CourseUnitAssignementView.workFile}"><bean:message key="courseunit.assignement.file"/></a> |
95 | </td> |
95 | </td> |
96 | </tr> |
96 | </tr> |
97 | </logic:notEmpty> |
97 | </logic:notEmpty> |
98 | </table> |
98 | </table> |
99 | 99 | ||
100 | 100 | ||
101 | 101 | ||
102 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value=""/> |
102 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value=""/> |
103 | <bean:define id="orderLast" type="java.lang.String" scope="request" value=""/> |
103 | <bean:define id="orderLast" type="java.lang.String" scope="request" value=""/> |
104 | 104 | ||
105 | <% |
105 | <% |
106 | // String orderFirst = ""; |
106 | // String orderFirst = ""; |
107 | // String orderLast = ""; |
107 | // String orderLast = ""; |
108 | 108 | ||
109 | if (request.getParameter("sort") != null) { |
109 | if (request.getParameter("sort") != null) { |
110 | String sortBy = request.getParameter("sort"); |
110 | String sortBy = request.getParameter("sort"); |
111 | if (sortBy.equals("firstAsc")) |
111 | if (sortBy.equals("firstAsc")) |
112 | { |
112 | { |
113 | Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.FIRST_VERSION_ASC); |
113 | Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.FIRST_VERSION_ASC); |
114 | %> |
114 | %> |
115 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstDesc"/> |
115 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstDesc"/> |
116 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/> |
116 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/> |
117 | <% |
117 | <% |
118 | } |
118 | } |
119 | else if (sortBy.equals("firstDesc")) |
119 | else if (sortBy.equals("firstDesc")) |
120 | { |
120 | { |
121 | Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.FIRST_VERSION_DESC); |
121 | Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.FIRST_VERSION_DESC); |
122 | %> |
122 | %> |
123 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/> |
123 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/> |
124 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/> |
124 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/> |
125 | <% |
125 | <% |
126 | } |
126 | } |
127 | else if (sortBy.equals("lastAsc")) |
127 | else if (sortBy.equals("lastAsc")) |
128 | { |
128 | { |
129 | Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.LAST_VERSION_ASC); |
129 | Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.LAST_VERSION_ASC); |
130 | %> |
130 | %> |
131 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastDesc"/> |
131 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastDesc"/> |
132 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/> |
132 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/> |
133 | <% |
133 | <% |
134 | } |
134 | } |
135 | else if (sortBy.equals("lastDesc")) |
135 | else if (sortBy.equals("lastDesc")) |
136 | { |
136 | { |
137 | Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.LAST_VERSION_DESC); |
137 | Collections.sort(CourseUnitAssignementView.getDeliverables(), CourseUnitDeliverableComparator.LAST_VERSION_DESC); |
138 | %> |
138 | %> |
139 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/> |
139 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/> |
140 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/> |
140 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/> |
141 | <% |
141 | <% |
142 | } |
142 | } |
143 | else |
143 | else |
144 | { |
144 | { |
145 | %> |
145 | %> |
146 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/> |
146 | <bean:define id="orderFirst" type="java.lang.String" scope="request" value="firstAsc"/> |
147 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/> |
147 | <bean:define id="orderLast" type="java.lang.String" scope="request" value="lastAsc"/> |
148 | 148 | ||
149 | <% |
149 | <% |
150 | } |
150 | } |
151 | } |
151 | } |
152 | 152 | ||
153 | %> |
153 | %> |
154 | 154 | ||
155 | <% |
155 | <% |
156 | StringBuilder deliverInfoCsv = new StringBuilder(); |
156 | StringBuilder deliverInfoCsv = new StringBuilder(); |
157 | %> |
157 | %> |
158 | 158 | ||
159 | <nested:form action="/user/courseUnitControllerFromHome"> |
159 | <nested:form action="/user/courseUnitControllerFromHome"> |
160 | <input type="hidden" name="dispatch" value="updateDeliverables"> |
160 | <input type="hidden" name="dispatch" value="updateDeliverables"> |
161 | <html:hidden property="courseUnitAssignementView.id" value="${CourseUnitAssignementView.id}"/> |
161 | <html:hidden property="courseUnitAssignementView.id" value="${CourseUnitAssignementView.id}"/> |
162 | 162 | ||
163 | <html:hidden property="courseUnitView.id" value="${CourseUnitView.id}"/> |
163 | <html:hidden property="courseUnitView.id" value="${CourseUnitView.id}"/> |
164 | 164 | ||
165 | <a name="works"> </a> |
165 | <a name="works"> </a> |
166 | <table class="tablesorter-blue"> |
166 | <table class="tablesorter-blue"> |
167 | <thead> |
167 | <thead> |
168 | <tr> |
168 | <tr> |
169 | <th><bean:message key="courseunit.assignement.delivered.versions"/></th> |
169 | <th><bean:message key="courseunit.assignement.delivered.versions"/></th> |
170 | <th><bean:message key="courseunit.assignement.delivered.date.first.version"/></th> |
170 | <th><bean:message key="courseunit.assignement.delivered.date.first.version"/></th> |
171 | <th><bean:message key="courseunit.assignement.delivered.date"/></th> |
171 | <th><bean:message key="courseunit.assignement.delivered.date"/></th> |
172 | <th><bean:message key="courseunit.assignement.deliver.time"/></th> |
172 | <th><bean:message key="courseunit.assignement.deliver.time"/></th> |
173 | <th><bean:message key="number"/></th> |
173 | <th><bean:message key="number"/></th> |
174 | <th><bean:message key="name"/></th> |
174 | <th><bean:message key="name"/></th> |
175 | <th><bean:message key="courseunit.assignement.deliver.version"/></th> |
175 | <th><bean:message key="courseunit.assignement.deliver.version"/></th> |
176 | <th><bean:message key="courseunit.assignement.deliver.grade"/></th> |
176 | <th><bean:message key="courseunit.assignement.deliver.grade"/></th> |
177 | <th><bean:message key="courseunit.assignement.deliver.obs"/></th> |
177 | <th><bean:message key="courseunit.assignement.deliver.obs"/></th> |
178 | </tr> |
178 | </tr> |
179 | </thead> |
179 | </thead> |
180 | <% |
180 | <% |
181 | deliverInfoCsv.append("Total de Versões Entregues").append(";"); |
181 | deliverInfoCsv.append("Total de Versões Entregues").append(";"); |
182 | deliverInfoCsv.append("Data de Entrega da Primeira Versão").append(";"); |
182 | deliverInfoCsv.append("Data de Entrega da Primeira Versão").append(";"); |
183 | deliverInfoCsv.append("Data de Entrega").append(";"); |
183 | deliverInfoCsv.append("Data de Entrega").append(";"); |
184 | deliverInfoCsv.append("Entregue").append(";"); |
184 | deliverInfoCsv.append("Entregue").append(";"); |
185 | deliverInfoCsv.append("Número").append(";"); |
185 | deliverInfoCsv.append("Número").append(";"); |
186 | deliverInfoCsv.append("Nome").append(";"); |
186 | deliverInfoCsv.append("Nome").append(";"); |
187 | deliverInfoCsv.append("Nota").append(";"); |
187 | deliverInfoCsv.append("Nota").append(";"); |
188 | deliverInfoCsv.append("Observações").append(";"); |
188 | deliverInfoCsv.append("Observações").append(";"); |
189 | deliverInfoCsv.append("\n"); |
189 | deliverInfoCsv.append("\n"); |
190 | 190 | ||
191 | %> |
191 | %> |
192 | <tbody> |
192 | <tbody> |
193 | <nested:iterate id="deliverable" property="courseUnitAssignementView.deliverables" type="pt.estgp.estgweb.domain.views.CourseUnitDeliverableView"> |
193 | <nested:iterate id="deliverable" property="courseUnitAssignementView.deliverables" type="pt.estgp.estgweb.domain.views.CourseUnitDeliverableView"> |
194 | <% |
194 | <% |
195 | deliverInfoCsv.append(deliverable.getVersionsSize()).append(";"); |
195 | deliverInfoCsv.append(deliverable.getVersionsSize()).append(";"); |
196 | deliverInfoCsv.append(deliverable.getDeliverDateMinutesSecondsStrFirstVersion()).append(";"); |
196 | deliverInfoCsv.append(deliverable.getDeliverDateMinutesSecondsStrFirstVersion()).append(";"); |
197 | deliverInfoCsv.append(deliverable.getDeliverDateStrMinutesSeconds()).append(";"); |
197 | deliverInfoCsv.append(deliverable.getDeliverDateStrMinutesSeconds()).append(";"); |
198 | if(deliverable.isLateDeliver()) |
198 | if(deliverable.isLateDeliver()) |
199 | deliverInfoCsv.append("Entregue a Horas").append(";"); |
199 | deliverInfoCsv.append("Entregue a Horas").append(";"); |
200 | else |
200 | else |
201 | deliverInfoCsv.append("Entregua Atrasada").append(";"); |
201 | deliverInfoCsv.append("Entregua Atrasada").append(";"); |
202 | deliverInfoCsv.append(deliverable.getStudent().getCode()).append(";"); |
202 | deliverInfoCsv.append(deliverable.getStudent().getCode()).append(";"); |
203 | deliverInfoCsv.append(deliverable.getStudent().getName()).append(";"); |
203 | deliverInfoCsv.append(deliverable.getStudent().getName()).append(";"); |
- | 204 | if(deliverable.getGrade() != null) |
|
204 | deliverInfoCsv.append(deliverable.getGrade()).append(";"); |
205 | deliverInfoCsv.append(deliverable.getGrade()).append(";"); |
- | 206 | else |
|
- | 207 | deliverInfoCsv.append(";"); |
|
- | 208 | if(deliverable.getObs() != null) |
|
205 | deliverInfoCsv.append(deliverable.getObs().replaceAll("\\n"," ")).append(";"); |
209 | deliverInfoCsv.append(deliverable.getObs().replaceAll("\\n"," ")).append(";"); |
- | 210 | else |
|
- | 211 | deliverInfoCsv.append(";"); |
|
206 | deliverInfoCsv.append("\n"); |
212 | deliverInfoCsv.append("\n"); |
207 | 213 | ||
208 | %> |
214 | %> |
209 | <tr> |
215 | <tr> |
210 | <td align="right"> |
216 | <td align="right"> |
211 | 217 | ||
212 | <a href="javascript:showOrHideOne('work${deliverable.id}')">${deliverable.versionsSize}</a> |
218 | <a href="javascript:showOrHideOne('work${deliverable.id}')">${deliverable.versionsSize}</a> |
213 | <div id="work${deliverable.id}" style="display:none;"> |
219 | <div id="work${deliverable.id}" style="display:none;"> |
214 | <nested:iterate id="version" name="deliverable" property="versions" type="pt.estgp.estgweb.domain.RepositoryFileVersion"> |
220 | <nested:iterate id="version" name="deliverable" property="versions" type="pt.estgp.estgweb.domain.RepositoryFileVersion"> |
215 | - <bean:message key="courseunit.assignement.deliver.version"/> (${version.saveDate}) <br/> |
221 | - <bean:message key="courseunit.assignement.deliver.version"/> (${version.saveDate}) <br/> |
216 | </nested:iterate> |
222 | </nested:iterate> |
217 | </div> |
223 | </div> |
218 | 224 | ||
219 | </td> |
225 | </td> |
220 | <td nowrap="nowrap" align="center">${deliverable.deliverDateMinutesSecondsStrFirstVersion} </td> |
226 | <td nowrap="nowrap" align="center">${deliverable.deliverDateMinutesSecondsStrFirstVersion} </td> |
221 | <td nowrap="nowrap" align="center">${deliverable.deliverDateStrMinutesSeconds} </td> |
227 | <td nowrap="nowrap" align="center">${deliverable.deliverDateStrMinutesSeconds} </td> |
222 | <logic:equal name="deliverable" property="lateDeliver" value="true"> |
228 | <logic:equal name="deliverable" property="lateDeliver" value="true"> |
223 | <td> |
229 | <td> |
224 | <label class="statusERROR"> |
230 | <label class="statusERROR"> |
225 | <bean:message key="courseunit.assignement.deliver.time.late"/> |
231 | <bean:message key="courseunit.assignement.deliver.time.late"/> |
226 | </label> |
232 | </label> |
227 | </td> |
233 | </td> |
228 | </logic:equal> |
234 | </logic:equal> |
229 | <logic:notEqual name="deliverable" property="lateDeliver" value="true"> |
235 | <logic:notEqual name="deliverable" property="lateDeliver" value="true"> |
230 | <td > |
236 | <td > |
231 | <label class="statusOK"> |
237 | <label class="statusOK"> |
232 | <bean:message key="courseunit.assignement.deliver.time.ok"/> |
238 | <bean:message key="courseunit.assignement.deliver.time.ok"/> |
233 | </label> |
239 | </label> |
234 | </td> |
240 | </td> |
235 | </logic:notEqual> |
241 | </logic:notEqual> |
236 | <td align="right">${deliverable.student.code}</td> |
242 | <td align="right">${deliverable.student.code}</td> |
237 | <td>${deliverable.student.name}</td> |
243 | <td>${deliverable.student.name}</td> |
238 | <td><a target="_blank" href="<%=request.getContextPath()%>/repositoryStream/${deliverable.fileStreamId}"><bean:message key="courseunit.assignement.deliver.version"/> (${deliverable.deliverDateMinutesSecondsStr})</a></td> |
244 | <td><a target="_blank" href="<%=request.getContextPath()%>/repositoryStream/${deliverable.fileStreamId}"><bean:message key="courseunit.assignement.deliver.version"/> (${deliverable.deliverDateMinutesSecondsStr})</a></td> |
239 | <td> |
245 | <td> |
240 | <nested:hidden property="id"/> |
246 | <nested:hidden property="id"/> |
241 | <nested:text property="grade"/> |
247 | <nested:text property="grade"/> |
242 | </td> |
248 | </td> |
243 | <td> |
249 | <td> |
244 | <%--<a href="javascript:showOrHideOne('obs${deliverable.id}')"><bean:message key="courseunit.assignement.deliver.show.obs"/></a>--%> |
250 | <%--<a href="javascript:showOrHideOne('obs${deliverable.id}')"><bean:message key="courseunit.assignement.deliver.show.obs"/></a>--%> |
245 | 251 | ||
246 | <nested:textarea styleId="obs${deliverable.id}" styleClass="textarea" property="obs"/> |
252 | <nested:textarea styleId="obs${deliverable.id}" styleClass="textarea" property="obs"/> |
247 | 253 | ||
248 | </td> |
254 | </td> |
249 | </tr> |
255 | </tr> |
250 | </nested:iterate> |
256 | </nested:iterate> |
251 | 257 | ||
252 | </tbody> |
258 | </tbody> |
253 | </table> |
259 | </table> |
254 | <input type="button" class="btn btn-success" onclick="this.form.submit()" value="<bean:message key="confirm"/>"/> |
260 | <input type="button" class="btn btn-success" onclick="this.form.submit()" value="<bean:message key="confirm"/>"/> |
255 | </nested:form> |
261 | </nested:form> |
256 | 262 | ||
257 | <button type="button" class="btn btn-default pull-right" data-toggle="modal" data-target="#modalCsvInfo">Informação da tabela em CSV</button> |
263 | <button type="button" class="btn btn-default pull-right" data-toggle="modal" data-target="#modalCsvInfo">Informação da tabela em CSV</button> |
258 | 264 | ||
259 | </div> |
265 | </div> |
260 | </div> |
266 | </div> |
261 | 267 | ||
262 | <div class="modal fade" id="modalCsvInfo" role="dialog" > |
268 | <div class="modal fade" id="modalCsvInfo" role="dialog" > |
263 | <div class="modal-dialog" data-width="960" style="display: block; width: 960px; margin-top: 50px;" aria-hidden="false"> |
269 | <div class="modal-dialog" data-width="960" style="display: block; width: 960px; margin-top: 50px;" aria-hidden="false"> |
264 | 270 | ||
265 | <!-- Modal content--> |
271 | <!-- Modal content--> |
266 | <div class="modal-content"> |
272 | <div class="modal-content"> |
267 | <div class="modal-header clearfix"> |
273 | <div class="modal-header clearfix"> |
268 | <h3 class="modal-title"> |
274 | <h3 class="modal-title"> |
269 | <label class="title-wrap">Informação de entregas em formato CSV para importar no EXCEL</label> |
275 | <label class="title-wrap">Informação de entregas em formato CSV para importar no EXCEL</label> |
270 | <button type="button" class="btn btn-danger btn-xs pull-right" data-dismiss="modal"><span class="glyphicon glyphicon-remove small"></span></button> |
276 | <button type="button" class="btn btn-danger btn-xs pull-right" data-dismiss="modal"><span class="glyphicon glyphicon-remove small"></span></button> |
271 | </h3> |
277 | </h3> |
272 | </div> |
278 | </div> |
273 | <div class="modal-body"> |
279 | <div class="modal-body"> |
274 | <p>Selecione o texto e faça copiar. No Excel coloque o cursor numa célula, clique no menu "Editar" e de seguida escolha "Colar Especial", na opção seguinte escolha "Texto". |
280 | <p>Selecione o texto e faça copiar. No Excel coloque o cursor numa célula, clique no menu "Editar" e de seguida escolha "Colar Especial", na opção seguinte escolha "Texto". |
275 | Finalmente clique na Caixa que lhe aparece no canto inferior direito do texto colado. Das opções possiveis escolha "Import Wizard". |
281 | Finalmente clique na Caixa que lhe aparece no canto inferior direito do texto colado. Das opções possiveis escolha "Import Wizard". |
276 | No wizard escolha "Delimitado" e "Seguinte". No ecrão seguinte escolha o carcater separador ";" e desmarque os restantes, faça "Terminar".</p> |
282 | No wizard escolha "Delimitado" e "Seguinte". No ecrão seguinte escolha o carcater separador ";" e desmarque os restantes, faça "Terminar".</p> |
277 | <pre><%=deliverInfoCsv.toString()%></pre> |
283 | <pre><%=deliverInfoCsv.toString()%></pre> |
278 | <button type="button" class="btn btn-danger" data-dismiss="modal">Sair</button> |
284 | <button type="button" class="btn btn-danger" data-dismiss="modal">Sair</button> |
279 | </div> |
285 | </div> |
280 | </div> |
286 | </div> |
281 | </div> |
287 | </div> |
282 | </div> |
288 | </div> |