Skip to content
Snippets Groups Projects
Commit 218e12df authored by Axel's avatar Axel
Browse files

index on single-user-project: 5996f617 bugfix: fixed a lot of small issues

parent 5996f617
No related branches found
No related tags found
No related merge requests found
package unipotsdam.gf.modules.tasks;
<<<<<<< HEAD
import org.glassfish.grizzly.http.util.TimeStamp;
=======
>>>>>>> origin/development_master
import unipotsdam.gf.modules.project.Project;
import unipotsdam.gf.modules.project.ProjectDAO;
import unipotsdam.gf.modules.states.ProjectPhase;
import unipotsdam.gf.modules.user.User;
import unipotsdam.gf.mysql.MysqlConnect;
import unipotsdam.gf.mysql.VereinfachtesResultSet;
import javax.annotation.ManagedBean;
import javax.inject.Inject;
import java.util.ArrayList;
import static unipotsdam.gf.modules.tasks.TaskName.*;
@ManagedBean
public class TaskDAO {
@Inject
ProjectDAO projectDAO;
@Inject
MysqlConnect connect;
// get all the tasks a user has in a specific project
public ArrayList<Task> getTaskType(String userEmail, String projectName) {
connect.connect();
String query = "Select * from tasks where userEmail = ? AND projectName = ?";
ArrayList<Task> result = new ArrayList<>();
VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(query, userEmail, projectName);
while (vereinfachtesResultSet.next()) {
String taskName = vereinfachtesResultSet.getString("taskName");
TaskName taskName1 = TaskName.valueOf(taskName);
Task task = getGeneralTask(vereinfachtesResultSet);
task.setTaskName(taskName1);
switch (taskName1) {
case WAIT_FOR_PARTICPANTS: {
result.add(getTaskWaitForParticipants(task, vereinfachtesResultSet));
break;
}
default: {
result.add(task);
}
}
}
connect.close();
return result;
}
// fill the task with the general data
private Task getGeneralTask(VereinfachtesResultSet vereinfachtesResultSet) {
Task task = new Task();
task.setImportance(Importance.valueOf(vereinfachtesResultSet.getString("importance")));
task.setUserEmail(vereinfachtesResultSet.getString("userEmail"));
task.setLink(vereinfachtesResultSet.getString("taskUrl"));
task.setProjectName(vereinfachtesResultSet.getString("projectName"));
task.setGroupTask(vereinfachtesResultSet.getBoolean("groupTask"));
task.setProgress(Progress.valueOf(vereinfachtesResultSet.getString("progress")));
task.setEventCreated(vereinfachtesResultSet.getLong("created"));
task.setDeadline(vereinfachtesResultSet.getTimestamp("due"));
task.setPhase(ProjectPhase.valueOf(vereinfachtesResultSet.getString("phase")));
getTaskType(task, vereinfachtesResultSet);
return task;
}
// bundle the taskModes
private void getTaskType(Task task, VereinfachtesResultSet vereinfachtesResultSet) {
ArrayList<TaskType> taskTypes = new ArrayList<>();
String taskMode = vereinfachtesResultSet.getString("taskMode");
String taskMode2 = vereinfachtesResultSet.getString("taskMode2");
String taskMode3 = vereinfachtesResultSet.getString("taskMode3");
if (taskMode != null && !taskMode.equals("") ) {
taskTypes.add(TaskType.valueOf(vereinfachtesResultSet.getString("taskMode")));
}
if (taskMode2 != null && !taskMode2.equals("")) {
taskTypes.add(TaskType.valueOf(vereinfachtesResultSet.getString("taskMode2")));
}
if (taskMode3 != null && !taskMode3.equals("")) {
taskTypes.add(TaskType.valueOf(vereinfachtesResultSet.getString("taskMode3")));
}
task.setTaskType(taskTypes.toArray(new TaskType[0]));
}
private Task getTaskWaitForParticipants(Task task, VereinfachtesResultSet vereinfachtesResultSet) {
task.setTaskName(TaskName.WAIT_FOR_PARTICPANTS);
Project project = new Project();
project.setName(vereinfachtesResultSet.getString("projectName"));
ParticipantsCount participantsCount = projectDAO.getParticipantCount(project);
task.setTaskData(participantsCount);
return task;
}
private Task createGeneralTask(Project project, User target) {
Task task = new Task();
task.setEventCreated(System.currentTimeMillis());
task.setProjectName(project.getName());
task.setUserEmail(project.getAuthorEmail());
task.setImportance(Importance.MEDIUM);
task.setProgress(Progress.JUSTSTARTED);
return task;
}
public void createTaskWaitForParticipants(Project project, User target) {
Task task = createGeneralTask(project, target);
task.setGroupTask(false);
task.setLink("../groupfinding/create-groups-manual.jsp");
task.setPhase(ProjectPhase.GroupFormation);
task.setRenderModel(WAIT_FOR_PARTICPANTS);
task.setTaskType(TaskType.LINKED, TaskType.INFO);
task.setImportance(Importance.MEDIUM);
task.setProgress(Progress.JUSTSTARTED);
persist(task);
}
public void createWaitingForGroupFormationTask(Project project, User target) {
Task task = createGeneralTask(project, target);
task.setGroupTask(false);
task.setPhase(ProjectPhase.GroupFormation);
task.setRenderModel(TaskName.WAITING_FOR_GROUP);
task.setTaskType(TaskType.INFO);
task.setImportance(Importance.MEDIUM);
task.setProgress(Progress.JUSTSTARTED);
persist(task);
}
private void persist(Task task) {
String taskMode2 = "";
if (task.getTaskType() != null && task.getTaskType().length > 1) {
taskMode2 = task.getTaskType()[1].toString();
}
String taskMode3 = "";
if (task.getTaskType() != null && task.getTaskType().length > 2) {
taskMode3 = task.getTaskType()[2].toString();
}
connect.connect();
String query =
"INSERT INTO fltrail.tasks (userEmail, projectName, taskUrl, taskName, " +
"groupTask, importance, progress, phase, created, due, taskMode, taskMode2, taskMode3) "
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
connect.issueInsertOrDeleteStatement(query, task.getUserEmail(), task.getProjectName(), task.getLink(),
task.getTaskName(), task.getGroupTask(), task.getImportance(), task.getProgress(), task
.getPhase(),
null, task.getDeadline(), task.getTaskType()[0].toString(), taskMode2, taskMode3);
connect.close();
}
public void update(Task task, Progress progress) {
connect.connect();
String query =
"UPDATE tasks set progress = ? where task.userEmail = ? & task.projectName = ? & task.taskName" + " = ?";
connect.issueUpdateStatement(
query, progress.name(), task.getUserEmail(), task.getProjectName(), task.getTaskName());
connect.close();
}
public Task[] getTaskType(User teacher, Project project) {
return getTaskType(teacher.getEmail(), project.getName()).toArray(new Task[0]);
}
}
......@@ -41,7 +41,7 @@ public class DossierCreationProcess {
FullSubmissionPostRequest fullSubmissionPostRequest, User user, Project project) {
FullSubmission fullSubmission = submissionController.addFullSubmission(fullSubmissionPostRequest);
taskDAO.persist(project, user, TaskName.FINALIZE_DOSSIER, Phase.DossierFeedback, TaskType.LINKED);
taskDAO.persist(project, user, TaskName.ANNOTATE_DOSSIER, Phase.DossierFeedback, TaskType.LINKED);
return fullSubmission;
}
......
......@@ -36,7 +36,6 @@ public class TaskDAO {
@Inject
private SubmissionController submissionController;
// fill the task with the general data
private Task getGeneralTask(VereinfachtesResultSet vereinfachtesResultSet) {
Task task = new Task();
......@@ -77,7 +76,6 @@ public class TaskDAO {
return taskTypes;
}
private Task getTaskWaitForParticipants(VereinfachtesResultSet vereinfachtesResultSet) {
Task task = getGeneralTask(vereinfachtesResultSet);
Project project = new Project();
......@@ -120,7 +118,7 @@ public class TaskDAO {
result.add(getTaskWaitForParticipants(vereinfachtesResultSet));
break;
}
case FINALIZE_DOSSIER: {
case ANNOTATE_DOSSIER: {
Task finalizeDossierTask = getFinalizeDossierTask(vereinfachtesResultSet);
//finalizeDossierTask.setTaskType(TaskType.LINKED);
result.add(finalizeDossierTask);
......@@ -149,7 +147,6 @@ public class TaskDAO {
return task;
}
public void persist(Project project, User target, TaskName taskName, Phase phase) {
Task aDefault = createDefault(project, target, taskName, phase);
persist(aDefault);
......@@ -161,7 +158,6 @@ public class TaskDAO {
persist(aDefault);
}
public void createTaskWaitForParticipants(Project project, User author) {
Task task = createDefault(project, author, TaskName.WAIT_FOR_PARTICPANTS, Phase.GroupFormation);
task.setTaskName(WAIT_FOR_PARTICPANTS);
......@@ -222,7 +218,6 @@ public class TaskDAO {
connect.close();
}
public void persistMemberTask(Project project, TaskName taskName, Phase phase) {
java.util.List<User> members = userDAO.getUsersByProjectName(project.getName());
for (User member : members) {
......
......@@ -5,5 +5,7 @@ public enum TaskName {
WAIT_FOR_PARTICPANTS, CLOSE_GROUP_FINDING_PHASE, WAITING_FOR_GROUP,
// Student Tasks
UPLOAD_DOSSIER, GIVE_FEEDBACK, CREATE_QUIZ, WRITE_EJOURNAL, FINALIZE_DOSSIER, FINALIZE_EJOURNAL, FORM_GROUPS_MANUALLY, EDIT_FORMED_GROUPS, CONTACT_GROUP_MEMBERS, ASSESSMENT
UPLOAD_DOSSIER, GIVE_FEEDBACK, CREATE_QUIZ, WRITE_EJOURNAL, ANNOTATE_DOSSIER, FINALIZE_DOSSIER,
FINALIZE_EJOURNAL,
FORM_GROUPS_MANUALLY, EDIT_FORMED_GROUPS, CONTACT_GROUP_MEMBERS, ASSESSMENT, EDIT_FEEDBACK
}
......@@ -114,7 +114,7 @@ public class Menu extends SimpleTagSupport {
" <li class=\"icon inactive\">Noten</li>\n";
break;
}
case Execution:{
case DossierFeedback:{
phaseViewString += " <li class=\"neutral icon closed\">Projektinitialisierung</li>\n" +
" <li class=\"draft icon closed\">Entwurfsphase</li>\n" +
" <li class=\"feedback icon\">Feedbackphase</li>\n" +
......@@ -123,7 +123,7 @@ public class Menu extends SimpleTagSupport {
" <li class=\"icon inactive\">Noten</li>\n";
break;
}
case DossierFeedback:{
case Execution:{
phaseViewString += " <li class=\"neutral icon closed\">Projektinitialisierung</li>\n" +
" <li class=\"draft icon closed\">Entwurfsphase</li>\n" +
" <li class=\"feedback icon closed\">Feedbackphase</li>\n" +
......
......@@ -120,6 +120,10 @@ function fitObjectInTmpl(object){
result.solveTaskWith="Lege ein EJournal an";
result.solveTaskWithLink="../journal/create-journal.jsp?projectName="+object.projectName;
break;
case "ANNOTATE_DOSSIER":
result.solveTaskWith="Annotiere das Dossier";
result.solveTaskWithLink="../annotation/create-unstructured-annotation.jsp?projectName="+object.projectName+"&submissionId=" + object.taskData.fullSubmissionId;
break;
case "FINALIZE_DOSSIER":
result.solveTaskWith="Finalisiere das Dossier";
result.solveTaskWithLink="../annotation/create-unstructured-annotation.jsp?projectName="+object.projectName+"&submissionId=" + object.taskData.fullSubmissionId;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment