diff --git a/src/main/java/se/su/dsv/scipro/opponent/panels/EditFinalSeminarFormPanel.java b/src/main/java/se/su/dsv/scipro/opponent/panels/EditFinalSeminarFormPanel.java
index ae5ebd39a0..1142833385 100644
--- a/src/main/java/se/su/dsv/scipro/opponent/panels/EditFinalSeminarFormPanel.java
+++ b/src/main/java/se/su/dsv/scipro/opponent/panels/EditFinalSeminarFormPanel.java
@@ -384,7 +384,7 @@ public class EditFinalSeminarFormPanel extends Panel {
 									.getActiveParticipations();
 							if (!allList.contains(al) && !al.isPreDeleted()) {
 								al.setFinalSeminar(editSeminar);
-								finalSeminarActiveParticipationDao.save(al);
+								al = finalSeminarActiveParticipationDao.save(al);
 
 							} else if (al.isPreDeleted() && allList.contains(al)) {
 								finalSeminarActiveParticipationDao
diff --git a/src/main/java/se/su/dsv/scipro/opponent/panels/ProjectFinalSeminarPanel.java b/src/main/java/se/su/dsv/scipro/opponent/panels/ProjectFinalSeminarPanel.java
index 90190c144e..55d97abd66 100644
--- a/src/main/java/se/su/dsv/scipro/opponent/panels/ProjectFinalSeminarPanel.java
+++ b/src/main/java/se/su/dsv/scipro/opponent/panels/ProjectFinalSeminarPanel.java
@@ -46,7 +46,11 @@ import se.su.dsv.scipro.repository.FileRepository;
 import se.su.dsv.scipro.repository.SortOrder;
 import se.su.dsv.scipro.repository.components.FileDownloadLink;
 import se.su.dsv.scipro.repository.components.FileOpenLink;
-import se.su.dsv.scipro.util.*;
+import se.su.dsv.scipro.util.CollectionFilterUtil;
+import se.su.dsv.scipro.util.DateFormatter;
+import se.su.dsv.scipro.util.JavascriptEventConfirmation;
+import se.su.dsv.scipro.util.Predicate;
+import se.su.dsv.scipro.util.TurnitinComponent;
 
 public class ProjectFinalSeminarPanel extends Panel {
 
@@ -70,14 +74,14 @@ public class ProjectFinalSeminarPanel extends Panel {
 	private Dialog editSeminarDialog;
 	private EditSeminarForm editSeminarForm;
 
-	public ProjectFinalSeminarPanel(final String id, final FinalSeminar seminar,
+	public ProjectFinalSeminarPanel(final String id, final Model<FinalSeminar> seminarModel,
 			final boolean isSupervisorView) {
 		super(id);
 
 		setVersioned(false);
 
 		EditForm editForm;
-		add(editForm = new EditForm("editForm", seminar));
+		add(editForm = new EditForm("editForm", seminarModel));
 		
 		editSeminarDialogContainer = new WebMarkupContainer("dialogContainer");
 		editSeminarDialog = new Dialog("dialog");
@@ -89,10 +93,10 @@ public class ProjectFinalSeminarPanel extends Panel {
 		editSeminarDialogContainer.setOutputMarkupId(true);
 		editSeminarDialogContainer.add(editSeminarForm = new EditSeminarForm("editSeminarForm"));
 		editSeminarForm.setOutputMarkupId(true);
-		add(new Label("seminarLocation", seminar.getRoom()));
-		add(new Label("projectClass", seminar.getProject().getProjectClass().getName()));
-		add(new Label("seminarLanguage", seminar.getPresentationLanguage().toString()));
-		add(new Label("thesisLanguage", seminar.getReportLanguage().toString()));
+		add(new Label("seminarLocation", seminarModel.getObject().getRoom()));
+		add(new Label("projectClass", seminarModel.getObject().getProject().getProjectClass().getName()));
+		add(new Label("seminarLanguage", seminarModel.getObject().getPresentationLanguage().toString()));
+		add(new Label("thesisLanguage", seminarModel.getObject().getReportLanguage().toString()));
 
 		if (!isSupervisorView) {
 			editForm.setVisible(false);
@@ -104,10 +108,10 @@ public class ProjectFinalSeminarPanel extends Panel {
 				.isFinalSeminarThesisMustBeAPDF() && !isSupervisorView);
 		add(pdfLabel);
 		int totalAttendees = 1;
-		totalAttendees += seminar.getActiveParticipations().size();
-		totalAttendees += seminar.getProject().getProjectFollowers().size();
-		totalAttendees += seminar.getProject().getProjectParticipants().size();
-		totalAttendees += seminar.getOppositions().size();
+		totalAttendees += seminarModel.getObject().getActiveParticipations().size();
+		totalAttendees += seminarModel.getObject().getProject().getProjectFollowers().size();
+		totalAttendees += seminarModel.getObject().getProject().getProjectParticipants().size();
+		totalAttendees += seminarModel.getObject().getOppositions().size();
 
 		final Dialog attendeesDialog = new Dialog("attendeesDialog");
 		attendeesDialog.setModal(true);
@@ -121,7 +125,7 @@ public class ProjectFinalSeminarPanel extends Panel {
 		attendeesDialog.add(attendeesDialogContainer);
 		add(attendeesDialog);
 
-		add(new FinalSeminarDetailsPanel("finalSeminarDetailsPanel", seminar, false));
+		add(new FinalSeminarDetailsPanel("finalSeminarDetailsPanel", seminarModel.getObject(), false));
 
 		final AjaxLink<Void> totalAttendeesLink = new AjaxLink<Void>("totalAttendeesLink") {
 			private static final long serialVersionUID = 1L;
@@ -129,7 +133,7 @@ public class ProjectFinalSeminarPanel extends Panel {
 			@Override
 			public void onClick(AjaxRequestTarget target) {
 				attendeesDialogContainer.replace(new FinalSeminarDetailsPanel(
-						"attendeesDialogContent", seminar, false));
+						"attendeesDialogContent", seminarModel.getObject(), false));
 				target.addComponent(attendeesDialogContainer);
 				attendeesDialog.open(target);
 			}
@@ -140,14 +144,14 @@ public class ProjectFinalSeminarPanel extends Panel {
 
 		add(new Label("totalAttendees", String.valueOf(totalAttendees)));
 
-		add(new DateFormatter(DateFormatter.FORMAT.EXTENDED).createFormattedDateLabel("seminarDate", seminar.getStartDate()));
+		add(new DateFormatter(DateFormatter.FORMAT.EXTENDED).createFormattedDateLabel("seminarDate", seminarModel.getObject().getStartDate()));
 
-		add(new DateFormatter(DateFormatter.FORMAT.REDUCED).createFormattedDateLabel("seminarEndDate", seminar.getEndDate()));
+		add(new DateFormatter(DateFormatter.FORMAT.REDUCED).createFormattedDateLabel("seminarEndDate", seminarModel.getObject().getEndDate()));
 		/*
 		 * Deadline -7 days removed, deadline is now the start-date of the
 		 * seminar
 		 */
-		finalSubmissionDate = new DateTime(seminar.getStartDate()).minusDays(7).toDate();
+		finalSubmissionDate = new DateTime(seminarModel.getObject().getStartDate()).minusDays(7).toDate();
 
 		add(new Label("seminarReportTitle", new Model<String>() {
 			private static final long serialVersionUID = 1L;
@@ -155,7 +159,7 @@ public class ProjectFinalSeminarPanel extends Panel {
 			@Override
 			public String getObject() {
 
-				return seminar.getDocument() == null ? "" : seminar.getDocument().getName();
+				return seminarModel.getObject().getDocument() == null ? "" : seminarModel.getObject().getDocument().getName();
 			}
 		}));
 
@@ -164,14 +168,14 @@ public class ProjectFinalSeminarPanel extends Panel {
 
 			@Override
 			public boolean isVisible() {
-				return seminar.getDocument() != null;
+				return seminarModel.getObject().getDocument() != null;
 			}
 		};
 
-		uploadInfoContainer.add(new DateFormatter().createFormattedDateLabel("uploadDate", seminar.getDocumentUploadDate()));
+		uploadInfoContainer.add(new DateFormatter().createFormattedDateLabel("uploadDate", seminarModel.getObject().getDocumentUploadDate()));
 
-		if (seminar.getDocumentUploader() != null) {
-			uploadInfoContainer.add(seminar.getDocumentUploader().getDisplayComponent("uploader"));
+		if (seminarModel.getObject().getDocumentUploader() != null) {
+			uploadInfoContainer.add(seminarModel.getObject().getDocumentUploader().getDisplayComponent("uploader"));
 		} else {
 			uploadInfoContainer.add(new EmptyPanel("uploader"));
 		}
@@ -188,10 +192,11 @@ public class ProjectFinalSeminarPanel extends Panel {
 
 			@Override
 			public void onClick() {
-				String url = turnitinComponent.returnReport(seminar.getTurnitinId());
+				String url = turnitinComponent.returnReport(seminarModel.getObject().getTurnitinId());
 				if (url != null) {
-					seminar.setCheckedForPlagirism(true);
-					finalSeminarDao.save(seminar);
+					seminarModel.getObject().setCheckedForPlagirism(true);
+					seminarModel.setObject(seminarModel.getObject());
+//					seminar = finalSeminarDao.save(seminar);
 				}
 				setResponsePage(new TurnitinPopupPage(url));
 			}
@@ -199,14 +204,14 @@ public class ProjectFinalSeminarPanel extends Panel {
 		turnItLink.setPopupSettings(new PopupSettings(PopupSettings.SCROLLBARS));
 		turnItLink.setOutputMarkupPlaceholderTag(true);
 		turnItLink.setVisible(false);
-		if (seminar.getTurnitinId() != null) {
-			if (seminar.isCheckedForPlagirism())
+		if (seminarModel.getObject().getTurnitinId() != null) {
+			if (seminarModel.getObject().isCheckedForPlagirism())
 				plagiarismLabel.setDefaultModelObject("Yes");
 			turnItLink.setVisible(isSupervisorView);
 		}
 
-		uploadInfoContainer.add(new FileDownloadLink("download", seminar.getDocument()).add(new ImageObject("downloadIcon", ImageObject.SIXTEEN + ImageObject.DOCUMENT_DOWN)));
-		uploadInfoContainer.add(new FileOpenLink("open", seminar.getDocument()).add(new ImageObject("openIcon", ImageObject.SIXTEEN + ImageObject.DOCUMENT_VIEW)));
+		uploadInfoContainer.add(new FileDownloadLink("download", seminarModel.getObject().getDocument()).add(new ImageObject("downloadIcon", ImageObject.SIXTEEN + ImageObject.DOCUMENT_DOWN)));
+		uploadInfoContainer.add(new FileOpenLink("open", seminarModel.getObject().getDocument()).add(new ImageObject("openIcon", ImageObject.SIXTEEN + ImageObject.DOCUMENT_VIEW)));
 		uploadInfoContainer.add(plagiarismLabel);
 		uploadInfoContainer.add(turnItLink);
 		uploadInfoContainer.add(checkPlagiarismLabel);
@@ -217,14 +222,14 @@ public class ProjectFinalSeminarPanel extends Panel {
 			@Override
 			public boolean isVisible() {
 
-				return !isSupervisorView && seminar.getActiveParticipations().isEmpty()
-						&& seminar.getOppositions().isEmpty() && seminar.getTurnitinId() == null;
+				return !isSupervisorView && seminarModel.getObject().getActiveParticipations().isEmpty()
+						&& seminarModel.getObject().getOppositions().isEmpty() && seminarModel.getObject().getTurnitinId() == null;
 			}
 
 			@Override
 			public void onSubmit() {
 				try {
-					seminarUploadController.deleteSeminarReport(seminar);
+					seminarUploadController.deleteSeminarReport(seminarModel.getObject());
 					setResponsePage(ProjectStartPage.class);
 				} catch (RuntimeException e) {
 					error("Cannot delete report, opponents or active participants have signed up already");
@@ -245,11 +250,11 @@ public class ProjectFinalSeminarPanel extends Panel {
 
 			@Override
 			public boolean isVisible() {
-				return seminar.getOppositions().size() == 0;
+				return seminarModel.getObject().getOppositions().size() == 0;
 			}
 		});
 
-		add(new ListView<FinalSeminarOpposition>("opponentList", seminar.getOppositions()) {
+		add(new ListView<FinalSeminarOpposition>("opponentList", seminarModel.getObject().getOppositions()) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -284,12 +289,12 @@ public class ProjectFinalSeminarPanel extends Panel {
 
 			@Override
 			public boolean isVisible() {
-				return seminar.getActiveParticipations().size() == 0;
+				return seminarModel.getObject().getActiveParticipations().size() == 0;
 			}
 		});
 
 		add(new ListView<FinalSeminarActiveParticipation>("activeParticipantsList",
-				seminar.getActiveParticipations()) {
+				seminarModel.getObject().getActiveParticipations()) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -301,7 +306,7 @@ public class ProjectFinalSeminarPanel extends Panel {
 
 		});
 
-		add(new SeminarDocumentUploadForm(seminar) {
+		add(new SeminarDocumentUploadForm(seminarModel.getObject()) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -310,7 +315,7 @@ public class ProjectFinalSeminarPanel extends Panel {
 				 * Show when: - no report uploaded && finalSubmissionDate has
 				 * not passed && it's not a supervisor view
 				 */
-				return seminar.getDocument() == null
+				return seminarModel.getObject().getDocument() == null
 				/*
 				 * Still show the final submission deadline as 7 days prior to
 				 * seminar but allow upload until seminar takes place.
@@ -325,7 +330,7 @@ public class ProjectFinalSeminarPanel extends Panel {
 
 			@Override
 			public boolean isVisible() {
-				return finalSubmissionDate.before(new Date()) && seminar.getDocument() == null;
+				return finalSubmissionDate.before(new Date()) && seminarModel.getObject().getDocument() == null;
 			}
 		};
 
@@ -341,7 +346,7 @@ public class ProjectFinalSeminarPanel extends Panel {
 
 			@Override
 			public boolean isVisible() {
-				return seminar.getDocument() == null && finalSubmissionDate.after(new Date());
+				return seminarModel.getObject().getDocument() == null && finalSubmissionDate.after(new Date());
 			}
 		};
 
@@ -351,8 +356,8 @@ public class ProjectFinalSeminarPanel extends Panel {
 		add(uploadDeadlineInfoContainer);
 	}
 
-	public ProjectFinalSeminarPanel(final String id, final FinalSeminar seminar) {
-		this(id, seminar, false);
+	public ProjectFinalSeminarPanel(final String id, final Model<FinalSeminar> seminarModel) {
+		this(id, seminarModel, false);
 	}
 
 	private class SeminarDocumentUploadForm extends AbstractUploadForm {
@@ -411,7 +416,7 @@ public class ProjectFinalSeminarPanel extends Panel {
          */
 		private static final long serialVersionUID = 5882957818616996808L;
 
-		public EditForm(String name, final FinalSeminar seminar) {
+		public EditForm(String name, final Model<FinalSeminar> seminarModel) {
 			super(name);
 
 			add(new AjaxButton("edit", new Model<String>("Edit Final Seminar")) {
@@ -420,7 +425,7 @@ public class ProjectFinalSeminarPanel extends Panel {
 
 				@Override
 				protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
-					FinalSeminar seminar2 = finalSeminarDao.reLoad(seminar);
+					FinalSeminar seminar2 = finalSeminarDao.reLoad(seminarModel.getObject());
 					editSeminarForm.removeAll();
 					editSeminarForm.add(new EditFinalSeminarFormPanel("editSeminarDetails", seminar2, false));
 					target.addComponent(editSeminarForm);