Subversion Repositories bacoAlunos

Rev

Rev 1312 | Rev 1316 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
203 jmachado 1
package pt.estgp.estgweb.domain.views;
2
 
632 jmachado 3
import jomm.utils.StringsUtils;
203 jmachado 4
import org.apache.log4j.Logger;
995 jmachado 5
import org.json.JSONArray;
6
import org.json.JSONException;
7
import org.json.JSONObject;
203 jmachado 8
import pt.estgp.estgweb.domain.*;
214 jmachado 9
import pt.estgp.estgweb.domain.dao.DaoFactory;
10
import pt.estgp.estgweb.services.courseunits.LoadCourseUnitAnnouncements;
203 jmachado 11
 
12
import java.io.Serializable;
405 jmachado 13
import java.util.*;
203 jmachado 14
 
15
/**
16
 * @author Jorge Machado
17
 * @date 2/Mar/2008
18
 * @time 19:34:49
19
 * @see pt.estgp.estgweb.domain.views
20
 */
204 jmachado 21
public class CourseUnitView extends DomainObjectView implements ICanManage
203 jmachado 22
{
23
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(CourseUnitView.class);
24
 
214 jmachado 25
 
26
    LoadCourseUnitAnnouncements loadCourseUnitAnnouncements = new LoadCourseUnitAnnouncements();
27
 
1073 jmachado 28
 
203 jmachado 29
    private long id;
30
    private 1.5.0/docs/api/java/lang/String.html">String name;
31
    private 1.5.0/docs/api/java/lang/String.html">String code;
214 jmachado 32
    private long courseId;
751 jmachado 33
    private long coordinatorId;
749 jmachado 34
    private long responsableId;
203 jmachado 35
    private 1.5.0/docs/api/java/lang/String.html">String courseCode;
36
    private 1.5.0/docs/api/java/lang/String.html">String courseName;
206 jmachado 37
    private 1.5.0/docs/api/java/lang/String.html">String semestre;
38
    private 1.5.0/docs/api/java/lang/String.html">String importYear;
489 jmachado 39
    private 1.5.0/docs/api/java/lang/String.html">String contentsGrants;
203 jmachado 40
    private BlogView blog;
223 jmachado 41
    private 1.5.0/docs/api/java/lang/String.html">String pathIntranet;
42
    private 1.5.0/docs/api/java/lang/String.html">String normalizedName;
209 jmachado 43
    private List<AnnouncementView> announcements;
358 jmachado 44
    private List<CourseUnitSummaryView> summaries;
995 jmachado 45
    private 1.5.0/docs/api/java/lang/String.html">String summariesJson;
209 jmachado 46
 
203 jmachado 47
    private CourseUnit courseUnit;
749 jmachado 48
    private UserView responsableTeacher;
206 jmachado 49
    private Set<UserView> teachers;
50
    private Set<UserView> students;
405 jmachado 51
    private List<UserView> studentsOrderedByName;
52
    private List<UserView> studentsOrderedByNumber;
206 jmachado 53
 
203 jmachado 54
    private 1.5.0/docs/api/java/lang/String.html">String objectives;
204 jmachado 55
    private 1.5.0/docs/api/java/lang/String.html">String programStreamId;
950 jmachado 56
    private 1.5.0/docs/api/java/lang/String.html">String evaluationStreamId;
343 jmachado 57
    private boolean validProgram;
58
    private UserView validatorUser;
1074 jmachado 59
    private boolean teacherCompleteEvaluation = false;
950 jmachado 60
    private boolean validEvaluation = false;
204 jmachado 61
    private int programSize;
62
    private 1.5.0/docs/api/java/lang/String.html">String extension;
207 jmachado 63
    private List<CourseUnitAssignementView> courseUnitAssignements;
995 jmachado 64
    private 1.5.0/docs/api/java/lang/String.html">String sumariosPathFileIntranet;
1111 jmachado 65
    private 1.5.0/docs/api/java/lang/String.html">String cdTurma;
203 jmachado 66
 
1315 jmachado 67
    private List<CourseUnitTurmaView> turmas = null;
68
 
214 jmachado 69
    private boolean notFound = false;
70
 
71
    private CourseView courseView;
72
 
1073 jmachado 73
    private 1.5.0/docs/api/java/lang/String.html">String interfaceImportYear = null;
74
 
1077 jmachado 75
    private boolean evaluationOpenByAdmin = false;
76
 
1315 jmachado 77
    private 1.5.0/docs/api/java/lang/String.html">String topologies;
78
 
203 jmachado 79
    public 1.5.0/docs/api/java/lang/Class.html">Class getReferenceClass()
80
    {
81
        return CourseUnitImpl.class;
82
    }
83
 
84
    public 1.5.0/docs/api/java/io/Serializable.html">Serializable getSerializable()
85
    {
86
        return id;
87
    }
88
 
89
    public CourseUnitView()
90
    {
91
    }
206 jmachado 92
    public CourseUnitView(CourseUnit courseUnit, boolean initTeachers, boolean initStudents )
93
    {
94
        super(courseUnit);
343 jmachado 95
        init(courseUnit, initTeachers, initStudents,false,false);
206 jmachado 96
    }
209 jmachado 97
 
208 jmachado 98
    public CourseUnitView(CourseUnit courseUnit, boolean initTeachers, boolean initStudents, boolean initBlog )
99
    {
100
        super(courseUnit);
343 jmachado 101
        init(courseUnit, initTeachers, initStudents, initBlog,false);
208 jmachado 102
    }
203 jmachado 103
 
343 jmachado 104
    public CourseUnitView(CourseUnit courseUnit, boolean initTeachers, boolean initStudents, boolean initBlog, boolean validatorPerson )
105
    {
106
        super(courseUnit);
107
        init(courseUnit, initTeachers, initStudents, initBlog, validatorPerson);
108
    }
109
 
203 jmachado 110
    public CourseUnitView(CourseUnit courseUnit)
111
    {
112
        super(courseUnit);
343 jmachado 113
        init(courseUnit, false,false,false,false);
206 jmachado 114
    }
208 jmachado 115
 
116
    public CourseUnitView(CourseUnit courseUnit, BlogView b)
206 jmachado 117
    {
208 jmachado 118
        super(courseUnit);
119
        this.blog = b;
343 jmachado 120
        init(courseUnit, false,false,false,false);
208 jmachado 121
    }
214 jmachado 122
 
749 jmachado 123
    public CourseUnit getCourseUnit() {
124
        return courseUnit;
125
    }
126
 
343 jmachado 127
    private void init(CourseUnit courseUnit, boolean initTeachers, boolean initStudents, boolean initBlog, boolean validatorUser)
208 jmachado 128
    {
1073 jmachado 129
 
130
        this.interfaceImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear();
131
 
1315 jmachado 132
        this.topologies = courseUnit.getTipologias();
223 jmachado 133
        this.pathIntranet = courseUnit.getPathIntranet();
134
        this.normalizedName = courseUnit.getNormalizedName();
203 jmachado 135
        this.courseUnit = courseUnit;
136
        this.courseName = courseUnit.getCourseName();
137
        this.name = courseUnit.getName();
138
        this.code = courseUnit.getCode();
206 jmachado 139
        this.importYear = courseUnit.getImportYear();
140
        this.semestre = courseUnit.getSemestre();
203 jmachado 141
        this.courseCode = courseUnit.getCourseCode();
995 jmachado 142
        this.summariesJson = courseUnit.getSummariesJson();
143
        this.sumariosPathFileIntranet = ((CourseUnitImpl)courseUnit).getSummariosPathFileIntranet();
1077 jmachado 144
        this.evaluationOpenByAdmin = courseUnit.isEvaluationOpenByAdmin(); //nao tem persistencia propria tem de ser feito num serviço
1111 jmachado 145
        this.cdTurma = courseUnit.getCdTurma();
749 jmachado 146
 
147
//        this.objectives = courseUnit.getObjectives();    DEPRECATED
148
        if(courseUnit.getCourseUnitProgram() !=null  && courseUnit.getCourseUnitProgram().getCourseUnitProgramPart2() != null)
149
            this.objectives = courseUnit.getCourseUnitProgram().getCourseUnitProgramPart2().getObjectivos();
150
        else
151
            this.objectives = null;
489 jmachado 152
        this.contentsGrants = courseUnit.getContentsGrants();
209 jmachado 153
        if(courseUnit.getProgramStreamId() != null)
343 jmachado 154
        {
209 jmachado 155
            programStreamId = courseUnit.getProgramStreamId();
343 jmachado 156
            validProgram = courseUnit.isValidProgram();
157
            if(validatorUser)
158
            {
159
                if(courseUnit.getValidatorUser() != null)
160
                    this.validatorUser = new UserView(courseUnit.getValidatorUser());
161
            }
162
        }
163
 
950 jmachado 164
        if(courseUnit.getEvaluationStreamId() != null)
165
        {
166
            evaluationStreamId = courseUnit.getEvaluationStreamId();
167
            validEvaluation = courseUnit.getCourseUnitEvaluation().isClosed();
1074 jmachado 168
            teacherCompleteEvaluation = courseUnit.getCourseUnitEvaluation().isTeacherComplete();
950 jmachado 169
        }
170
 
203 jmachado 171
//        if(courseUnit.getBlog() != null)
172
//            this.blog = new BlogView(courseUnit.getBlog());
173
        this.id = courseUnit.getId();
206 jmachado 174
        teachers = new HashSet<UserView>();
175
        students = new HashSet<UserView>();
176
        if(initTeachers && courseUnit.getTeachers() != null)
177
        {
749 jmachado 178
            responsableTeacher = new UserView(courseUnit.getResponsableTeacher());
206 jmachado 179
            for(TeacherImpl t: courseUnit.getTeachers())
180
            {
181
                UserView u = new UserView(t);
182
                teachers.add(u);
183
            }
184
        }
185
        if(initStudents && courseUnit.getStudents() != null)
186
        {
1315 jmachado 187
            turmas = new ArrayList<CourseUnitTurmaView>();
188
            if(courseUnit.getTurmas() != null)
206 jmachado 189
            {
1315 jmachado 190
 
191
                for(CourseUnitTurma t: courseUnit.getTurmas())
192
                {
193
                    CourseUnitTurmaView tv = new CourseUnitTurmaView();
194
                    tv.setTurma(t.getTurma());
195
                    tv.setStudents(new ArrayList<UserView>());
196
                    for(StudentImpl s: courseUnit.getStudents())
197
                    {
198
                        UserView u = new UserView(s);
199
                        u.setStudentCourseUnitTurmaView(tv);
200
                        students.add(u);
201
                        tv.getStudents().add(u);
202
                    }
203
                    turmas.add(tv);
204
                }
206 jmachado 205
            }
206
        }
208 jmachado 207
        if(initBlog)
208
        {
209
            blog = new BlogView(((CourseUnitImpl)courseUnit).getUnitBlog(),this);
210
        }
214 jmachado 211
        if(courseUnit.getCourse() != null)
212
        {
213
            courseId = courseUnit.getCourse().getId();
751 jmachado 214
            if(courseUnit.getCourse().getCoordinator() != null)
215
                coordinatorId = courseUnit.getCourse().getCoordinator().getId();
214 jmachado 216
        }
749 jmachado 217
        if(courseUnit.getResponsableTeacher() != null)
218
        {
219
            responsableId = courseUnit.getResponsableTeacher().getId();
220
        }
968 jmachado 221
        courseView = new CourseView(courseUnit.getCourse(),false);
203 jmachado 222
    }
223
 
950 jmachado 224
    public 1.5.0/docs/api/java/lang/String.html">String getEvaluationStreamId() {
225
        return evaluationStreamId;
226
    }
227
 
1074 jmachado 228
    public boolean isTeacherCompleteEvaluation() {
229
        return teacherCompleteEvaluation;
230
    }
950 jmachado 231
 
995 jmachado 232
    public 1.5.0/docs/api/java/lang/String.html">String getSumariosPathFileIntranet() {
233
        return sumariosPathFileIntranet;
234
    }
950 jmachado 235
 
236
    public boolean isValidEvaluation() {
237
        return validEvaluation;
238
    }
239
 
240
 
751 jmachado 241
    public long getCoordinatorId() {
242
        return coordinatorId;
243
    }
244
 
245
    public void setCoordinatorId(long coordinatorId) {
246
        this.coordinatorId = coordinatorId;
247
    }
248
 
749 jmachado 249
    public long getResponsableId() {
250
        return responsableId;
251
    }
252
 
1118 jmachado 253
    public 1.5.0/docs/api/java/lang/String.html">String getCdTurma() {
254
        return cdTurma;
255
    }
256
 
749 jmachado 257
    public void setResponsableId(long responsableId) {
258
        this.responsableId = responsableId;
259
    }
260
 
214 jmachado 261
    public long getCourseId()
262
    {
263
        return courseId;
264
    }
265
 
266
    public void setCourseId(long courseId)
267
    {
268
        this.courseId = courseId;
269
    }
270
 
271
    public CourseView getCourseView()
272
    {
273
        return courseView;
274
    }
275
 
223 jmachado 276
    public 1.5.0/docs/api/java/lang/String.html">String getNormalizedName()
277
    {
278
        return normalizedName;
279
    }
280
 
281
    public void setNormalizedName(1.5.0/docs/api/java/lang/String.html">String normalizedName)
282
    {
283
        this.normalizedName = normalizedName;
284
    }
285
 
286
    public 1.5.0/docs/api/java/lang/String.html">String getPathIntranet()
287
    {
288
        return pathIntranet;
289
    }
290
 
291
    public void setPathIntranet(1.5.0/docs/api/java/lang/String.html">String pathIntranet)
292
    {
293
        this.pathIntranet = pathIntranet;
294
    }
295
 
214 jmachado 296
    public void setCourseView(CourseView courseView)
297
    {
298
        this.courseView = courseView;
299
    }
300
 
301
    public void setNotFound(boolean notFound)
302
    {
303
        this.notFound = notFound;
304
    }
305
 
306
    public boolean isNotFound()
307
    {
308
        return notFound;
309
    }
310
 
209 jmachado 311
    public void setAnnouncements(List<AnnouncementView> announcements)
312
    {
313
        this.announcements = announcements;
314
    }
315
 
206 jmachado 316
    public int getTeachersSize()
317
    {
318
        if(teachers != null)
319
            return teachers.size();
320
        return 0;
321
    }
205 jmachado 322
 
206 jmachado 323
    public int getStudentsSize()
324
    {
325
        if(students != null)
326
            return students.size();
327
        return 0;
328
    }
214 jmachado 329
 
207 jmachado 330
    public void setCourseUnitAssignements(List<CourseUnitAssignementView> courseUnitAssignements)
205 jmachado 331
    {
332
        this.courseUnitAssignements = courseUnitAssignements;
333
    }
334
 
207 jmachado 335
    public List<CourseUnitAssignementView> getCourseUnitAssignements()
205 jmachado 336
    {
337
        return courseUnitAssignements;
338
    }
339
 
489 jmachado 340
    public 1.5.0/docs/api/java/lang/String.html">String getContentsGrants() {
341
        return contentsGrants;
342
    }
343
 
344
    public void setContentsGrants(1.5.0/docs/api/java/lang/String.html">String contentsGrants) {
345
        this.contentsGrants = contentsGrants;
346
    }
347
 
204 jmachado 348
    public void setId(long id)
203 jmachado 349
    {
204 jmachado 350
        this.id = id;
351
    }
203 jmachado 352
 
204 jmachado 353
    public void setName(1.5.0/docs/api/java/lang/String.html">String name)
354
    {
355
        this.name = name;
203 jmachado 356
    }
357
 
204 jmachado 358
    public void setCode(1.5.0/docs/api/java/lang/String.html">String code)
359
    {
360
        this.code = code;
361
    }
362
 
363
    public void setCourseCode(1.5.0/docs/api/java/lang/String.html">String courseCode)
364
    {
365
        this.courseCode = courseCode;
366
    }
367
 
368
    public void setCourseName(1.5.0/docs/api/java/lang/String.html">String courseName)
369
    {
370
        this.courseName = courseName;
371
    }
372
 
373
    public void persistViewInObject(CourseUnit c)
374
    {
375
        c.setObjectives(objectives);
489 jmachado 376
        c.setContentsGrants(contentsGrants);
204 jmachado 377
    }
378
 
206 jmachado 379
    public void persistViewAdminInObject(CourseUnit c)
380
    {
381
        c.setImportYear(importYear);
382
        c.setName(name);
383
        c.setCode(code);
1146 jmachado 384
        c.setCdTurma(cdTurma);
206 jmachado 385
        c.setSemestre(semestre);
214 jmachado 386
        if(courseId > 0)
387
        {
388
            c.setCourse(DaoFactory.getCourseDaoImpl().load(courseId));
748 jmachado 389
            c.setCourseCode(c.getCourse().getCode());
390
            c.setCourseName(c.getCourse().getName());
214 jmachado 391
        }
749 jmachado 392
        if(responsableId > 0)
393
        {
394
            c.setResponsableTeacher(DaoFactory.getTeacherDaoImpl().load(responsableId));
395
        }
206 jmachado 396
    }
397
 
203 jmachado 398
    public 1.5.0/docs/api/java/lang/String.html">String getObjectives()
399
    {
400
        return objectives;
401
    }
402
 
485 jmachado 403
    public 1.5.0/docs/api/java/lang/String.html">String getFormatedObjectives()
404
    {
405
        return StringsUtils.getFormatedText(objectives);
406
    }
407
 
203 jmachado 408
    public void setObjectives(1.5.0/docs/api/java/lang/String.html">String objectives)
409
    {
410
        this.objectives = objectives;
411
    }
412
 
204 jmachado 413
    public 1.5.0/docs/api/java/lang/String.html">String getProgramStreamId()
203 jmachado 414
    {
204 jmachado 415
        return programStreamId;
203 jmachado 416
    }
417
 
204 jmachado 418
    public void setProgramStreamId(1.5.0/docs/api/java/lang/String.html">String programStreamId)
203 jmachado 419
    {
204 jmachado 420
        this.programStreamId = programStreamId;
203 jmachado 421
    }
422
 
423
    public long getId()
424
    {
425
        return id;
426
    }
427
 
428
    public 1.5.0/docs/api/java/lang/String.html">String getName()
429
    {
1312 jmachado 430
        if(courseView != null && courseView.isSeparatedUnits(importYear))
431
            return name + " (" + cdTurma + ")";
432
        else return name;
203 jmachado 433
    }
434
 
435
    public 1.5.0/docs/api/java/lang/String.html">String getCode()
436
    {
437
        return code;
438
    }
439
 
206 jmachado 440
    public 1.5.0/docs/api/java/lang/String.html">String getSemestre()
441
    {
343 jmachado 442
        if(semestre == null)
443
        {
444
            logger.error("Unit" + getId() + " " + getName() + "" + " - " + getCourseName() + " " + getImportYear() + " with no SEMESTRE SET, returning S1");
445
            return "S1";
446
        }
206 jmachado 447
        return semestre;
448
    }
449
 
450
    public void setSemestre(1.5.0/docs/api/java/lang/String.html">String semestre)
451
    {
452
        this.semestre = semestre;
453
    }
454
 
455
    public 1.5.0/docs/api/java/lang/String.html">String getImportYear()
456
    {
457
        return importYear;
458
    }
459
 
460
    public void setImportYear(1.5.0/docs/api/java/lang/String.html">String importYear)
461
    {
462
        this.importYear = importYear;
463
    }
464
 
203 jmachado 465
    public 1.5.0/docs/api/java/lang/String.html">String getCourseCode()
466
    {
467
        return courseCode;
468
    }
469
 
470
    public 1.5.0/docs/api/java/lang/String.html">String getCourseName()
471
    {
472
        return courseName;
473
    }
474
 
475
    public BlogView getBlog()
476
    {
477
        return blog;
478
    }
479
 
480
 
204 jmachado 481
    public int getProgramSize()
482
    {
483
        return programSize;
484
    }
485
 
486
    public void setProgramSize(int programSize)
487
    {
488
        this.programSize = programSize;
489
    }
490
 
491
 
492
    public 1.5.0/docs/api/java/lang/String.html">String getExtension()
493
    {
494
        return extension;
495
    }
496
 
497
    public void setExtension(1.5.0/docs/api/java/lang/String.html">String extension)
498
    {
499
        this.extension = extension;
500
    }
501
 
209 jmachado 502
    public List<AnnouncementView> getAnnouncements()
203 jmachado 503
    {
504
        return announcements;
505
    }
506
 
206 jmachado 507
    public Set<UserView> getTeachers()
203 jmachado 508
    {
509
        return teachers;
510
    }
511
 
206 jmachado 512
    public Set<UserView> getStudents()
203 jmachado 513
    {
514
        return students;
515
    }
204 jmachado 516
 
995 jmachado 517
    public 1.5.0/docs/api/java/lang/String.html">String getSummariesJson() {
518
        return summariesJson;
519
    }
520
 
1162 jmachado 521
    public void setCdTurma(1.5.0/docs/api/java/lang/String.html">String cdTurma) {
522
        this.cdTurma = cdTurma;
523
    }
524
 
995 jmachado 525
    List<CourseUnitSummaryView> summariesFromJson = null;
526
    /**
527
     *
528
     * @return sumaries or null if there are no summaries in Json
529
     */
530
 
1014 jmachado 531
    int lateSummaries = 0;
1022 jmachado 532
    List<String> lateSummariesDates = new ArrayList<String>();
995 jmachado 533
 
1016 jmachado 534
    public synchronized List<CourseUnitSummaryView> getSummariesFromJson() {
995 jmachado 535
        if(summariesFromJson != null)
536
            return summariesFromJson;
1016 jmachado 537
        lateSummaries = 0;
995 jmachado 538
        summariesFromJson = new ArrayList<CourseUnitSummaryView>();
539
        if(summariesJson != null && summariesJson.length() > 0)
540
        {
541
            try {
542
                JSONObject jsonObject = new JSONObject(summariesJson);
543
                JSONArray summaries = jsonObject.getJSONArray("summary");
544
                for(int i = 0; i < summaries.length();i++)
545
                {
546
                    JSONObject summary = summaries.getJSONObject(i);
547
                    CourseUnitSummaryImpl sum = DomainObjectFactory.createCourseUnitSummaryImpl();
1014 jmachado 548
 
1004 jmachado 549
                    if(sum.updateWithJson(summary)){
550
                        CourseUnitSummaryView view = new CourseUnitSummaryView(sum);
551
                        summariesFromJson.add(view);
552
                    }
1073 jmachado 553
                    else if(importYear.equals(interfaceImportYear))
554
                    //so verifica atrasados para unidades do ano corrente a titulo informativo
1014 jmachado 555
                    {
556
                        CourseUnitSummaryView view = new CourseUnitSummaryView(sum);
1070 jmachado 557
                        if(view.getNumber() < 0 && view.getOriginalDate().getTime() + 48*60*60*1000 < 1.5.0/docs/api/java/lang/System.html">System.currentTimeMillis())
1014 jmachado 558
                        {
1073 jmachado 559
 
1022 jmachado 560
                            //System.out.println(view.getNumber() + " " + view.getDate() + " " + view.getOriginalDate());
1014 jmachado 561
                            lateSummaries++;
1022 jmachado 562
                            lateSummariesDates.add(view.getDate());
1014 jmachado 563
                        }
564
                    }
995 jmachado 565
                }
566
            } catch (JSONException e) {
567
                logger.error(e,e);
568
            }
569
            1.5.0/docs/api/java/util/Collections.html">Collections.sort(summariesFromJson,new Comparator<CourseUnitSummaryView>() {
570
                @1.5.0/docs/api/java/lang/Override.html">Override
571
                public int compare(CourseUnitSummaryView courseUnitSummaryView, CourseUnitSummaryView courseUnitSummaryView2) {
1003 jmachado 572
 
995 jmachado 573
                    if(courseUnitSummaryView.getNumber() > courseUnitSummaryView2.getNumber())
1002 jmachado 574
                        return -1;
1003 jmachado 575
                    else if(courseUnitSummaryView.getNumber() < courseUnitSummaryView2.getNumber())
995 jmachado 576
                        return 1;
577
                    return 0;
578
                }
579
            });
580
            return summariesFromJson;
581
        }
582
        return null;
583
    }
584
 
1022 jmachado 585
    public List<String> getLateSummariesDates() {
586
        return lateSummariesDates;
587
    }
588
 
1012 jmachado 589
    public int getLateSummaries()
590
    {
591
        getSummariesFromJson();
1014 jmachado 592
        return lateSummaries;
1012 jmachado 593
 
594
    }
595
 
995 jmachado 596
    public void setSummariesJson(1.5.0/docs/api/java/lang/String.html">String summariesJson) {
597
        this.summariesJson = summariesJson;
598
    }
599
 
204 jmachado 600
    public boolean isOwnedBy(GenericUser u)
601
    {
208 jmachado 602
        return isOwnedBy(u, false);
204 jmachado 603
    }
214 jmachado 604
 
208 jmachado 605
    public boolean isOwnedBy(GenericUser u, boolean transaction)
606
    {
632 jmachado 607
        //return u != null && u instanceof TeacherImpl && ((TeacherImpl)u).hasCourseUnit(getId(), transaction);
608
 
609
        //ALTERACOES REUNIAO BACO CODIGO 01062011
610
        //TESTE A COMISSAO DE CURSO NAS CADEIRAS
611
 
208 jmachado 612
        return u != null && u instanceof TeacherImpl && ((TeacherImpl)u).hasCourseUnit(getId(), transaction);
613
    }
204 jmachado 614
 
995 jmachado 615
 
204 jmachado 616
    /**
617
     * Not implemented can be variuous teachers
618
     * @return null
619
     * use isOwnedBy in this class
620
     */
621
    public GenericUser getOwner()
622
    {
623
        return null;
624
    }
625
 
626
    /**
627
     * Not implemented
628
     * @return
629
     */
630
    public List<String> getOwnerRoles()
631
    {
632
        return null;
633
    }
206 jmachado 634
 
204 jmachado 635
    /**
636
     * Not implemented
637
     * @return
638
     */
639
    public 1.5.0/docs/api/java/lang/String.html">String getChoosedOwnerRole()
640
    {
641
        return null;
642
    }
643
 
644
    public boolean isInternal()
645
    {
646
        return true;
647
    }
648
 
649
    public boolean isValid()
650
    {
651
        return true;
652
    }
206 jmachado 653
 
654
 
343 jmachado 655
    public boolean isValidProgram()
656
    {
657
        return validProgram;
658
    }
206 jmachado 659
 
343 jmachado 660
    public void setValidProgram(boolean validProgram)
661
    {
662
        this.validProgram = validProgram;
663
    }
664
 
665
    public UserView getValidatorUser()
666
    {
667
        return validatorUser;
668
    }
669
 
670
    public void setValidatorUser(UserView validatorUser)
671
    {
672
        this.validatorUser = validatorUser;
673
    }
674
 
749 jmachado 675
    public UserView getResponsableTeacher() {
676
        return responsableTeacher;
677
    }
358 jmachado 678
 
749 jmachado 679
    public void setResponsableTeacher(UserView responsableTeacher) {
680
        this.responsableTeacher = responsableTeacher;
681
    }
682
 
358 jmachado 683
    public void setSummaries(List<CourseUnitSummaryView> summaries)
684
    {
685
        this.summaries = summaries;
686
    }
687
 
688
    public List<CourseUnitSummaryView> getSummaries()
689
    {
690
        return summaries;
691
    }
692
 
1077 jmachado 693
 
694
    public boolean isEvaluationOpenByAdmin() {
695
        return evaluationOpenByAdmin;
696
    }
697
 
698
    public void setEvaluationOpenByAdmin(boolean evaluationOpenByAdmin) {
699
        this.evaluationOpenByAdmin = evaluationOpenByAdmin;
700
    }
701
 
343 jmachado 702
    public 1.5.0/docs/api/java/lang/String.html">String getTeachersSnipet()
703
    {
376 jmachado 704
        1.5.0/docs/api/java/lang/String.html">String sep = "";
343 jmachado 705
        1.5.0/docs/api/java/lang/StringBuilder.html">StringBuilder strBuilder = new 1.5.0/docs/api/java/lang/StringBuilder.html">StringBuilder();
706
        if(teachers != null && teachers.size() > 0)
707
        {
708
            for(UserView userView: teachers)
709
            {
710
                strBuilder
376 jmachado 711
                        .append(sep)
712
                        .append(" ")
343 jmachado 713
                        .append(" <a href=\"mailto:")
714
                        .append(userView.getEmail())
715
                        .append("\">")
716
                        .append(userView.getName())
717
                        .append("</a>")
718
 
376 jmachado 719
                        ;
720
                sep = ",";
343 jmachado 721
            }
722
        }
723
        return strBuilder.toString();
724
    }
405 jmachado 725
 
726
 
727
    public List<UserView> getStudentsOrderedByNumber()
728
    {
729
        if(studentsOrderedByNumber == null && students != null)
730
        {
731
            studentsOrderedByNumber = new 1.5.0/docs/api/java/util/ArrayList.html">ArrayList(students);
732
            1.5.0/docs/api/java/util/Collections.html">Collections.sort(studentsOrderedByNumber,new Comparator<UserView>()
733
            {
734
 
735
                public int compare(UserView o1, UserView o2)
736
                {
737
                    if(o1 == null)
738
                        return 1;
739
                    if(o2 == null)
740
                        return -1;
741
                    if(o1.getCode() > o2.getCode())
742
                        return 1;
743
                    else if(o1.getCode() < o2.getCode())
744
                        return -1;
745
                    else
746
                        return 0;
747
                }
748
            }
749
            );
750
        }
751
        return studentsOrderedByNumber;
752
    }
753
 
754
    public List<UserView> getStudentsOrderedByName()
755
    {
756
        if(studentsOrderedByName == null && students != null)
757
        {
758
            studentsOrderedByName = new 1.5.0/docs/api/java/util/ArrayList.html">ArrayList(students);
759
            1.5.0/docs/api/java/util/Collections.html">Collections.sort(studentsOrderedByName,new Comparator<UserView>()
760
            {
761
 
762
                public int compare(UserView o1, UserView o2)
763
                {
764
                    if(o1 == null || o1.getName() == null)
765
                        return 1;
766
                    if(o2 == null || o2.getName() == null)
767
                        return -1;
768
                    return o1.getName().compareTo(o2.getName());
769
                }
770
            }
771
            );
772
        }
773
        return studentsOrderedByName;
774
    }
1315 jmachado 775
 
776
    private  List<CourseUnitImpl.Tipologia> mergedTipologias = null;
777
 
778
 
779
    public List<CourseUnitImpl.Tipologia> getTipologias()
780
    {
781
        try {
782
            if(mergedTipologias == null)
783
                mergedTipologias = ((CourseUnitImpl)courseUnit).getTipologiasClass().obtainMergeTipologias();
784
        } catch (1.5.0/docs/api/java/lang/Exception.html">Exception e) {
785
            logger.error(e,e);
786
        }
787
        return mergedTipologias;
788
    }
789
 
790
    public List<CourseUnitImpl.Tipologia> loadTopologiasDocente(1.5.0/docs/api/java/lang/String.html">String codigo)
791
    {
792
 
793
        if(getTipologias() == null)
794
            return null;
795
        List<CourseUnitImpl.Tipologia> tipologiasDocente = new ArrayList<CourseUnitImpl.Tipologia>();
796
        try {
797
            for(CourseUnitImpl.Tipologia t: getTipologias())
798
            {
799
                if(t.getCdDocente().equals(codigo))
800
                    tipologiasDocente.add(t);
801
            }
802
            return tipologiasDocente;
803
        } catch (1.5.0/docs/api/java/lang/Exception.html">Exception e) {
804
            logger.error(e,e);
805
        }
806
        return null;
807
    }
808
 
809
    public Map<String,List<String>> getTipologiasTurmas(1.5.0/docs/api/java/lang/String.html">String codigo)
810
    {
811
 
812
        if(getTipologias() == null)
813
            return null;
814
        List<CourseUnitImpl.Tipologia> tipologiasDocente = new ArrayList<CourseUnitImpl.Tipologia>();
815
        try {
816
            Map<String,List<String>> mapa = new HashMap<String, List<String>>();
817
            for(CourseUnitImpl.Tipologia t: getTipologias())
818
            {
819
                if(t.getCdDocente().equals(codigo))
820
                {
821
                    List<String> turmas = mapa.get(t.getDsTipologia());
822
                    if(turmas == null)
823
                    {
824
                        turmas = new ArrayList<String>();
825
                        mapa.put(t.getDsTipologia(),turmas);
826
                    }
827
                    turmas.add(t.getCdTurma());
828
                }
829
            }
830
            return mapa;
831
        } catch (1.5.0/docs/api/java/lang/Exception.html">Exception e) {
832
            logger.error(e,e);
833
        }
834
        return null;
835
    }
203 jmachado 836
}