Commit 05c013a2 by Tuukka Kivilahti

now manager can manage participants. Also printing style

1 parent 1f78477b
...@@ -13,6 +13,7 @@ import org.slf4j.Logger; ...@@ -13,6 +13,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.codecrew.moya.enums.apps.LecturePermission; import fi.codecrew.moya.enums.apps.LecturePermission;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.facade.EventUserFacade; import fi.codecrew.moya.facade.EventUserFacade;
import fi.codecrew.moya.facade.LectureFacade; import fi.codecrew.moya.facade.LectureFacade;
import fi.codecrew.moya.facade.LectureGroupFacade; import fi.codecrew.moya.facade.LectureGroupFacade;
...@@ -42,6 +43,9 @@ public class LectureBean implements LectureBeanLocal { ...@@ -42,6 +43,9 @@ public class LectureBean implements LectureBeanLocal {
@EJB @EJB
UserBeanLocal userBean; UserBeanLocal userBean;
@EJB
PermissionBean permBean;
@Override @Override
public List<Lecture> getLecturesByLectureGroup(LectureGroup group) { public List<Lecture> getLecturesByLectureGroup(LectureGroup group) {
...@@ -138,16 +142,16 @@ public class LectureBean implements LectureBeanLocal { ...@@ -138,16 +142,16 @@ public class LectureBean implements LectureBeanLocal {
@RolesAllowed({LecturePermission.S_VIEW, LecturePermission.S_MANAGE}) @RolesAllowed({LecturePermission.S_VIEW, LecturePermission.S_MANAGE})
public Lecture participate(EventUser user, Lecture lecture) { public Lecture participate(EventUser user, Lecture lecture) {
if(userLectureSelectsLeft(lecture.getLectureGroup(), user) <= 0) if(userLectureSelectsLeft(lecture.getLectureGroup(), user) <= 0 && !permBean.hasPermission(LecturePermission.MANAGE))
return lecture; return lecture;
EventUser targetUser = eventUserFacade.reload(user); EventUser targetUser = eventUserFacade.reload(user);
lecture.getParticipants().add(targetUser); if (!lecture.getParticipants().contains(targetUser)) {
lecture.getParticipants().add(targetUser);
lecture = lectureFacade.merge(lecture); lecture = lectureFacade.merge(lecture);
targetUser.getLectures().add(lecture);
targetUser.getLectures().add(lecture); }
return lecture; return lecture;
} }
...@@ -221,4 +225,9 @@ public class LectureBean implements LectureBeanLocal { ...@@ -221,4 +225,9 @@ public class LectureBean implements LectureBeanLocal {
return lectureFacade.findFirstLecture(); return lectureFacade.findFirstLecture();
} }
@Override
public Lecture findLecture(Integer id) {
return lectureFacade.find(id);
}
} }
...@@ -299,8 +299,7 @@ public class MenuBean implements MenuBeanLocal { ...@@ -299,8 +299,7 @@ public class MenuBean implements MenuBeanLocal {
adminlectures.addPage(menuitemfacade.findOrCreate("/lectureadmin/manageLectureGroups"), LecturePermission.MANAGE); adminlectures.addPage(menuitemfacade.findOrCreate("/lectureadmin/manageLectureGroups"), LecturePermission.MANAGE);
adminlectures.addPage(menuitemfacade.findOrCreate("/lectureadmin/lectureParticipants"), LecturePermission.MANAGE); adminlectures.addPage(menuitemfacade.findOrCreate("/lectureadmin/lectureParticipants"), LecturePermission.MANAGE);
adminlectures.addPage(menuitemfacade.findOrCreate("/lectureadmin/manageLectures"), LecturePermission.MANAGE).setVisible(false); adminlectures.addPage(menuitemfacade.findOrCreate("/lectureadmin/manageLectures"), LecturePermission.MANAGE).setVisible(false);
adminlectures.addPage(menuitemfacade.findOrCreate("/lectureadmin/manageParticipants"), LecturePermission.MANAGE).setVisible(false);
MenuNavigation infoviews = adminmenu.addPage(null, null); MenuNavigation infoviews = adminmenu.addPage(null, null);
......
...@@ -18,6 +18,8 @@ public interface LectureBeanLocal { ...@@ -18,6 +18,8 @@ public interface LectureBeanLocal {
public LectureGroup saveLectureGroup(LectureGroup group); public LectureGroup saveLectureGroup(LectureGroup group);
public LectureGroup findLectureGroup(Integer id); public LectureGroup findLectureGroup(Integer id);
public Lecture findLecture(Integer id);
public Lecture saveLecture(Lecture lecture); public Lecture saveLecture(Lecture lecture);
......
...@@ -44,10 +44,10 @@ ...@@ -44,10 +44,10 @@
<p:column style="width:16px"> <p:column style="width:16px">
<p:rowToggler /> <p:rowToggler />
</p:column> </p:column>
<p:column headerText="#{i18n['lecture.name']}" sortBy="#{lecture.name}"> <p:column headerText="#{i18n['lecture.name']}" sortBy="#{lecture.name}" filterBy="#{lecture.name}">
<h:outputText value="#{lecture.name}" /> <h:outputText value="#{lecture.name}" />
</p:column> </p:column>
<p:column headerText="#{i18n['lecture.description']}" sortBy="#{lecture.description}"> <p:column headerText="#{i18n['lecture.description']}" sortBy="#{lecture.description}" filterBy="#{lecture.description}">
<h:outputText value="#{lecture.description}" /> <h:outputText value="#{lecture.description}" />
</p:column> </p:column>
<p:column headerText="#{i18n['lecture.hours']}" sortBy="#{lecture.hours}"> <p:column headerText="#{i18n['lecture.hours']}" sortBy="#{lecture.hours}">
...@@ -64,8 +64,13 @@ ...@@ -64,8 +64,13 @@
<p:column> <p:column>
<h:outputText value="#{i18n['lecture.full']}" rendered="#{lecture.full}" /> <h:outputText value="#{i18n['lecture.full']}" rendered="#{lecture.full}" />
</p:column> </p:column>
<p:column>
<h:link outcome="/lectureadmin/manageParticipants" value="#{i18n['lecture.manageParticipants']}">
<f:param name="lectureid" value="#{lecture.id}" />
</h:link>
</p:column>
<p:rowExpansion> <p:rowExpansion>
<p:dataTable value="#{lecture.participants}" var="user"> <p:dataTable value="#{lecture.participants}" var="user" >
<p:column> <p:column>
<h:outputText value="#{user.user.nick}" /> <h:outputText value="#{user.user.nick}" />
</p:column> </p:column>
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:products="http://java.sun.com/jsf/composite/cditools/products" xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:viewParam name="lectureid" value="#{lectureReportsView.lectureId}" />
<f:event type="preRenderView" listener="#{lectureReportsView.initView()}" />
</f:metadata>
<ui:define rendered="#{lectureReportsView.lectureGroupsVisible}" name="title">
<h1>#{i18n['manageparticipants.title']}</h1>
</ui:define>
<ui:define name="content">
<p:fieldset legend="#{lectureReportsView.currentLecture.name}">
<p:panelGrid columns="2">
<p:outputLabel value="#{i18n['lecture.description']}" />
<h:outputText value="#{lectureReportsView.currentLecture.description}" />
<p:outputLabel value="#{i18n['lecture.startTime']}" />
<h:outputText value="#{lectureReportsView.currentLecture.startTime}" pattern="#{sessionHandler.datetimeFormat}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
<p:outputLabel value="#{i18n['lecture.hours']}" />
<h:outputText value="#{lectureReportsView.currentLecture.hours}" />
<p:outputLabel value="#{i18n['lecture.participants']}" />
<h:outputText id="participants_count" value="#{lectureReportsView.currentLecture.participantsCount} / #{lectureReportsView.currentLecture.maxParticipantsCount}" />
</p:panelGrid>
</p:fieldset>
<br />
<br />
<br />
<br />
<h:form id="manageParticipants">
<p:dataTable id="participants" value="#{lectureReportsView.currentLecture.participants}" var="user">
<p:column>
<h:outputText value="#{user.user.nick}" />
</p:column>
<p:column>
<h:outputText value="#{user.user.lastname}" />
</p:column>
<p:column>
<h:outputText value="#{user.user.firstnames}" />
</p:column>
</p:dataTable>
</h:form>
<br />
<br />
<br />
<br />
<h:form>
<p:fieldset styleClass="no_print" legend="#{i18n['manageparticipants.addUser']}">
<p:autoComplete size="55" id="multiuser" value="#{lectureReportsView.multiSearchUser}" completeMethod="#{lectureReportsView.matchMulti}" converter="#{eventUserConverter}" var="usrx" itemLabel="#{usrx.shortUserDescriptor}" itemValue="#{usrx}">
<p:ajax event="itemSelect" listener="#{lectureReportsView.addUserToLecture}" update=":manageParticipants:participants multiuser :participants_count" />
</p:autoComplete>
</p:fieldset>
</h:form>
<br />
<br />
<br />
<br />
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
...@@ -74,10 +74,10 @@ ...@@ -74,10 +74,10 @@
<p:tabView id="availableLectures"> <p:tabView id="availableLectures">
<p:tab title="#{i18n['lecture.availableLecturesList']}"> <p:tab title="#{i18n['lecture.availableLecturesList']}">
<p:dataTable id="lecturelist" value="#{lectureUserView.lectures}" var="lecture"> <p:dataTable id="lecturelist" value="#{lectureUserView.lectures}" var="lecture">
<p:column headerText="#{i18n['lecture.name']}" sortBy="#{lecture.name}" style="width:125px"> <p:column headerText="#{i18n['lecture.name']}" sortBy="#{lecture.name}" filterBy="#{lecture.name}" style="width:125px">
<h:outputText value="#{lecture.name}" /> <h:outputText value="#{lecture.name}" />
</p:column> </p:column>
<p:column headerText="#{i18n['lecture.description']}" sortBy="#{lecture.description}"> <p:column headerText="#{i18n['lecture.description']}" sortBy="#{lecture.description}" filterBy="#{lecture.description}">
<h:outputText value="#{lecture.description}" /> <h:outputText value="#{lecture.description}" />
</p:column> </p:column>
<p:column headerText="#{i18n['lecture.hours']}" sortBy="#{lecture.hours}" style="width:110px"> <p:column headerText="#{i18n['lecture.hours']}" sortBy="#{lecture.hours}" style="width:110px">
......
@media print {
header,#menu,.flex1,#header_left,#header_center,#header_right,nav,#menu,.languageSelector
{
display: none;
}
#main {
background: none;
border: none;
}
.no_print {
display: none;
}
}
\ No newline at end of file
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
<link rel="stylesheet" href="#{request.contextPath}/resources/templates/template1/css//main.css" /> <link rel="stylesheet" href="#{request.contextPath}/resources/templates/template1/css//main.css" />
<link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/template1/css/style.css" /> <link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/template1/css/style.css" />
<link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/template1/css/general.css" /> <link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/template1/css/general.css" />
<link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/templates/template1/css/print.css" />
<script src="#{request.contextPath}/resources/templates/template1/js/modernizr-2.6.2.min.js"></script> <script src="#{request.contextPath}/resources/templates/template1/js/modernizr-2.6.2.min.js"></script>
......
...@@ -36,76 +36,76 @@ bill.showPayButtons = Show pay buttons ...@@ -36,76 +36,76 @@ bill.showPayButtons = Show pay buttons
billine.vatp = vat-% billine.vatp = vat-%
bortalApplication.BILL = Creating, and managing bills bortalApplication.BILL = Creating, and managing bills
bortalApplication.COMPO = Managing compos bortalApplication.COMPO = Managing compos
bortalApplication.CONTENT = Product & shop management bortalApplication.CONTENT = Product & shop management
bortalApplication.EVENT = Event permissions bortalApplication.EVENT = Event permissions
bortalApplication.LAYOUT = Laout management bortalApplication.LAYOUT = Laout management
bortalApplication.LICENSE = License stuff bortalApplication.LICENSE = License stuff
bortalApplication.MAP = Map management bortalApplication.MAP = Map management
bortalApplication.POLL = Polling stuff bortalApplication.POLL = Polling stuff
bortalApplication.SALESPOINT = Managing salespoint bortalApplication.SALESPOINT = Managing salespoint
bortalApplication.SHOP = Product % shop management bortalApplication.SHOP = Product % shop management
bortalApplication.TERMINAL = Sales and self help terminal roles bortalApplication.TERMINAL = Sales and self help terminal roles
bortalApplication.USER = User management related bortalApplication.USER = User management related
bortalApplication.bill.CREATE_BILL = Create bills for self bortalApplication.bill.CREATE_BILL = Create bills for self
bortalApplication.bill.CREATE_VERKKOMAKSU = Can create web payment to self bortalApplication.bill.CREATE_VERKKOMAKSU = Can create web payment to self
bortalApplication.bill.READ_ALL = "Read all bills" bortalApplication.bill.READ_ALL = "Read all bills"
bortalApplication.bill.VIEW_OWN = View own bills bortalApplication.bill.VIEW_OWN = View own bills
bortalApplication.bill.WRITE_ALL = Modify all bills bortalApplication.bill.WRITE_ALL = Modify all bills
bortalApplication.compo.MANAGE = Manage compos bortalApplication.compo.MANAGE = Manage compos
bortalApplication.compo.SUBMIT_ENTRY = Submit entry bortalApplication.compo.SUBMIT_ENTRY = Submit entry
bortalApplication.compo.VIEW_COMPOS = View compos bortalApplication.compo.VIEW_COMPOS = View compos
bortalApplication.compo.VOTE = Vote bortalApplication.compo.VOTE = Vote
bortalApplication.content.MANAGE_ACTIONLOG = Manage actionlog bortalApplication.content.MANAGE_ACTIONLOG = Manage actionlog
bortalApplication.content.MANAGE_MENU = Manage menus bortalApplication.content.MANAGE_MENU = Manage menus
bortalApplication.content.MANAGE_NEWS = Manage newsgroups bortalApplication.content.MANAGE_NEWS = Manage newsgroups
bortalApplication.content.MANAGE_PAGES = Manage pages bortalApplication.content.MANAGE_PAGES = Manage pages
bortalApplication.event.MANAGE_PRIVATE_PROPERTIES = Can manage event private properties bortalApplication.event.MANAGE_PRIVATE_PROPERTIES = Can manage event private properties
bortalApplication.event.MANAGE_PROPERTIES = Can manage event properties bortalApplication.event.MANAGE_PROPERTIES = Can manage event properties
bortalApplication.license.MANAGE = Can manage licenses bortalApplication.license.MANAGE = Can manage licenses
bortalApplication.license.VIEW_OWN_CODES = Can view own licenses bortalApplication.license.VIEW_OWN_CODES = Can view own licenses
bortalApplication.map.BUY_PLACES = Reserve and buy places from map bortalApplication.map.BUY_PLACES = Reserve and buy places from map
bortalApplication.map.MANAGE_MAPS = Create and modify maps bortalApplication.map.MANAGE_MAPS = Create and modify maps
bortalApplication.map.MANAGE_OTHERS = Manage other users reservations in map bortalApplication.map.MANAGE_OTHERS = Manage other users reservations in map
bortalApplication.map.RELEASE_PLACE = Can release place bortalApplication.map.RELEASE_PLACE = Can release place
bortalApplication.map.VIEW = View maps bortalApplication.map.VIEW = View maps
bortalApplication.poll.ANSWER = Can answer and view availabe polls bortalApplication.poll.ANSWER = Can answer and view availabe polls
bortalApplication.poll.CREATE = Create and manage polls bortalApplication.poll.CREATE = Create and manage polls
bortalApplication.poll.VIEW_RESULTS = View anonymized poll results bortalApplication.poll.VIEW_RESULTS = View anonymized poll results
bortalApplication.salespoint.MODIFY = Modify salespoints bortalApplication.salespoint.MODIFY = Modify salespoints
bortalApplication.salespoint.VIEW = View salespoints bortalApplication.salespoint.VIEW = View salespoints
bortalApplication.shop.LIST_ALL_PRODUCTS = List all products in shop bortalApplication.shop.LIST_ALL_PRODUCTS = List all products in shop
bortalApplication.shop.LIST_USERPRODUCTS = List products for users in shop bortalApplication.shop.LIST_USERPRODUCTS = List products for users in shop
bortalApplication.shop.MANAGE_FOODWAVES = Can manage food waves bortalApplication.shop.MANAGE_FOODWAVES = Can manage food waves
bortalApplication.shop.MANAGE_PRODUCTS = Create and modify products bortalApplication.shop.MANAGE_PRODUCTS = Create and modify products
bortalApplication.shop.SHOP_FOODWAVE = Can shop on food wave bortalApplication.shop.SHOP_FOODWAVE = Can shop on food wave
bortalApplication.shop.SHOP_PRODUCTS = Shop products to self bortalApplication.shop.SHOP_PRODUCTS = Shop products to self
bortalApplication.shop.SHOP_TO_OTHERS = Shop to other users bortalApplication.shop.SHOP_TO_OTHERS = Shop to other users
bortalApplication.terminal.CASHIER = Access cashier terminal functions bortalApplication.terminal.CASHIER = Access cashier terminal functions
bortalApplication.terminal.CUSTOMER = Access client terminal functions bortalApplication.terminal.CUSTOMER = Access client terminal functions
bortalApplication.terminal.SELFHELP = Self help terminal bortalApplication.terminal.SELFHELP = Self help terminal
bortalApplication.tournament.DOUBLE_ELIMINATION = Double elimination bortalApplication.tournament.DOUBLE_ELIMINATION = Double elimination
bortalApplication.tournament.SINGLE_ELIMINATION = Single Elimination bortalApplication.tournament.SINGLE_ELIMINATION = Single Elimination
bortalApplication.user = User permissions bortalApplication.user = User permissions
bortalApplication.user.ANYUSER = All users have this anyways bortalApplication.user.ANYUSER = All users have this anyways
bortalApplication.user.CREATE_NEW = Create new user bortalApplication.user.CREATE_NEW = Create new user
bortalApplication.user.INVITE_USERS = Invite users bortalApplication.user.INVITE_USERS = Invite users
bortalApplication.user.LOGGED_IN_USER = Logged in user bortalApplication.user.LOGGED_IN_USER = Logged in user
bortalApplication.user.LOGIN = Can login bortalApplication.user.LOGIN = Can login
bortalApplication.user.LOGOUT = Can logout bortalApplication.user.LOGOUT = Can logout
bortalApplication.user.MANAGE_HTTP_SESSION = Manage http sessions bortalApplication.user.MANAGE_HTTP_SESSION = Manage http sessions
bortalApplication.user.MODIFY = Modify users bortalApplication.user.MODIFY = Modify users
bortalApplication.user.MODIFY_ACCOUNTEVENTS = Modify Account events bortalApplication.user.MODIFY_ACCOUNTEVENTS = Modify Account events
bortalApplication.user.READ_ORGROLES = View organization roles bortalApplication.user.READ_ORGROLES = View organization roles
bortalApplication.user.READ_ROLES = View all roles. bortalApplication.user.READ_ROLES = View all roles.
bortalApplication.user.VIEW_ACCOUNTEVENTS = Show other users account events bortalApplication.user.VIEW_ACCOUNTEVENTS = Show other users account events
bortalApplication.user.VIEW_ALL = View all users bortalApplication.user.VIEW_ALL = View all users
bortalApplication.user.VIEW_OWN_ACCOUNTEVENTS = View own accountevent bortalApplication.user.VIEW_OWN_ACCOUNTEVENTS = View own accountevent
bortalApplication.user.VIEW_SELF = Can view self bortalApplication.user.VIEW_SELF = Can view self
bortalApplication.user.VITUTTAAKO = Can send feedback bortalApplication.user.VITUTTAAKO = Can send feedback
bortalApplication.user.WRITE_ORGROLES = Modify organization roles bortalApplication.user.WRITE_ORGROLES = Modify organization roles
bortalApplication.user.WRITE_ROLES = Modify roles bortalApplication.user.WRITE_ROLES = Modify roles
card.massprint.title = Print all card.massprint.title = Print all
...@@ -196,10 +196,10 @@ lanEventPrivateProperty.save = Save ...@@ -196,10 +196,10 @@ lanEventPrivateProperty.save = Save
lanEventPrivateProperty.textValue = Text value lanEventPrivateProperty.textValue = Text value
lanEventPrivateProperty.valueIsRawdataWarning = Raw value lanEventPrivateProperty.valueIsRawdataWarning = Raw value
lanEventProperty.booleanValue = Boolean value lanEventProperty.booleanValue = Boolean value
lanEventProperty.defaultValue = Default value lanEventProperty.defaultValue = Default value
lanEventProperty.save = Save lanEventProperty.save = Save
lanEventProperty.textValue = Text value lanEventProperty.textValue = Text value
lecture.availableLectures = Aihealueen kurssit ja luennot lecture.availableLectures = Aihealueen kurssit ja luennot
lecture.availableLecturesCalendar = Kalenterina lecture.availableLecturesCalendar = Kalenterina
...@@ -210,6 +210,7 @@ lecture.description = Kuvaus ...@@ -210,6 +210,7 @@ lecture.description = Kuvaus
lecture.full = Kurssi t\u00E4ynn\u00E4 lecture.full = Kurssi t\u00E4ynn\u00E4
lecture.groupFull = Kiinti\u00F6 t\u00E4ynn\u00E4 lecture.groupFull = Kiinti\u00F6 t\u00E4ynn\u00E4
lecture.hours = Kesto, tunteja lecture.hours = Kesto, tunteja
lecture.manageParticipants = Hallitse osallistujia
lecture.maxParticipantsCount = Max. osallistujia lecture.maxParticipantsCount = Max. osallistujia
lecture.multicreate = Luo monta putkeen lecture.multicreate = Luo monta putkeen
lecture.name = Nimi lecture.name = Nimi
...@@ -222,6 +223,7 @@ lecture.participating = Osallistumassa ...@@ -222,6 +223,7 @@ lecture.participating = Osallistumassa
lecture.roles = Roolit lecture.roles = Roolit
lecture.saveLecture = Muokkaa lecture.saveLecture = Muokkaa
lecture.selectgroup = Valitse aihealue lecture.selectgroup = Valitse aihealue
lecture.showParticipants = N\u00E4yt\u00E4 osallistujat
lecture.startTime = Aloitusaika lecture.startTime = Aloitusaika
lecture.unparticipate = Poista ilmoittautuminen lecture.unparticipate = Poista ilmoittautuminen
...@@ -250,6 +252,10 @@ loginerror.header = Login failed ...@@ -250,6 +252,10 @@ loginerror.header = Login failed
loginerror.message = Username of password incorrect. loginerror.message = Username of password incorrect.
loginerror.resetpassword = Reset password loginerror.resetpassword = Reset password
manageparticipants.addUser = Lis\u00E4\u00E4 osallistuja
manageparticipants.lectureTitle = Kurssin / luennon tiedot
manageparticipants.title = Osallistujat
map.id = # map.id = #
navi.auth.login = frontpage navi.auth.login = frontpage
...@@ -285,9 +291,9 @@ poll.edit = edit ...@@ -285,9 +291,9 @@ poll.edit = edit
print = Print print = Print
product.providedRole = Product defines role product.providedRole = Product defines role
product.returnProductEdit = Return to product: product.returnProductEdit = Return to product:
product.saved = Product saved product.saved = Product saved
productshop.minusOne = -1 productshop.minusOne = -1
productshop.minusTen = -10 productshop.minusTen = -10
......
...@@ -587,6 +587,7 @@ lecture.description = Description ...@@ -587,6 +587,7 @@ lecture.description = Description
lecture.full = Lecture full lecture.full = Lecture full
lecture.groupFull = Limit reached lecture.groupFull = Limit reached
lecture.hours = Duration hours lecture.hours = Duration hours
lecture.manageParticipants = Manage participants
lecture.maxParticipantsCount = Max participants lecture.maxParticipantsCount = Max participants
lecture.multicreate = Create multible in row lecture.multicreate = Create multible in row
lecture.name = Name lecture.name = Name
...@@ -599,6 +600,7 @@ lecture.participating = Participating ...@@ -599,6 +600,7 @@ lecture.participating = Participating
lecture.roles = Roles lecture.roles = Roles
lecture.saveLecture = Edit lecture.saveLecture = Edit
lecture.selectgroup = Select lecturegroup lecture.selectgroup = Select lecturegroup
lecture.showParticipants = Show participants
lecture.startTime = Start time lecture.startTime = Start time
lecture.unparticipate = Remove participation lecture.unparticipate = Remove participation
...@@ -635,6 +637,10 @@ loginerror.header = Login failed ...@@ -635,6 +637,10 @@ loginerror.header = Login failed
loginerror.message = Username of password incorrect. loginerror.message = Username of password incorrect.
loginerror.resetpassword = Reset password loginerror.resetpassword = Reset password
manageparticipants.addUser = Add participant
manageparticipants.lectureTitle = Lecture / course info
manageparticipants.title = Participants
map.create = Create map map.create = Create map
map.createTileMap = Create tilemap map.createTileMap = Create tilemap
map.edit = Edit map.edit = Edit
......
...@@ -597,6 +597,7 @@ lecture.description = Kuvaus ...@@ -597,6 +597,7 @@ lecture.description = Kuvaus
lecture.full = Kurssi t\u00E4ynn\u00E4 lecture.full = Kurssi t\u00E4ynn\u00E4
lecture.groupFull = Kiinti\u00F6 t\u00E4ynn\u00E4 lecture.groupFull = Kiinti\u00F6 t\u00E4ynn\u00E4
lecture.hours = Kesto tunteina lecture.hours = Kesto tunteina
lecture.manageParticipants = Hallitse osallistujia
lecture.maxParticipantsCount = Osallistujia enint. lecture.maxParticipantsCount = Osallistujia enint.
lecture.multicreate = Luo monta putkeen lecture.multicreate = Luo monta putkeen
lecture.name = Nimi lecture.name = Nimi
...@@ -645,6 +646,10 @@ loginerror.header = Kirjautuminen ep\u00E4onnistui ...@@ -645,6 +646,10 @@ loginerror.header = Kirjautuminen ep\u00E4onnistui
loginerror.message = K\u00E4ytt\u00E4j\u00E4tunnus tai salasana ei ollut oikein. loginerror.message = K\u00E4ytt\u00E4j\u00E4tunnus tai salasana ei ollut oikein.
loginerror.resetpassword = Salasana unohtunut? loginerror.resetpassword = Salasana unohtunut?
manageparticipants.addUser = Lis\u00E4\u00E4 osallistuja
manageparticipants.lectureTitle = Kurssin / luennon tiedot
manageparticipants.title = Osallistujat
map.create = Luo kartta map.create = Luo kartta
map.createTileMap = Luo tilekartta map.createTileMap = Luo tilekartta
map.edit = Muokkaa map.edit = Muokkaa
......
...@@ -10,9 +10,13 @@ import javax.inject.Named; ...@@ -10,9 +10,13 @@ import javax.inject.Named;
import fi.codecrew.moya.beans.EventBeanLocal; import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.LectureBeanLocal; import fi.codecrew.moya.beans.LectureBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.enums.apps.LecturePermission; import fi.codecrew.moya.enums.apps.LecturePermission;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.Lecture; import fi.codecrew.moya.model.Lecture;
import fi.codecrew.moya.model.LectureGroup; import fi.codecrew.moya.model.LectureGroup;
import fi.codecrew.moya.util.UserSearchQuery;
import fi.codecrew.moya.utilities.SearchResult;
import fi.codecrew.moya.web.cdiview.GenericCDIView; import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.cdiview.user.UserView; import fi.codecrew.moya.web.cdiview.user.UserView;
...@@ -30,6 +34,13 @@ public class LectureReportsView extends GenericCDIView { ...@@ -30,6 +34,13 @@ public class LectureReportsView extends GenericCDIView {
@EJB @EJB
EventBeanLocal eventBean; EventBeanLocal eventBean;
@EJB
UserBeanLocal userBean;
EventUser multiSearchUser = null;
ListDataModel<LectureGroup> lectureGroups = null; ListDataModel<LectureGroup> lectureGroups = null;
ListDataModel<Lecture> lectures = null; ListDataModel<Lecture> lectures = null;
...@@ -37,6 +48,12 @@ public class LectureReportsView extends GenericCDIView { ...@@ -37,6 +48,12 @@ public class LectureReportsView extends GenericCDIView {
LectureGroup currentLectureGroup; LectureGroup currentLectureGroup;
Lecture currentLecture = null;
Integer lectureId;
public void initView() { public void initView() {
if (super.requirePermissions(LecturePermission.MANAGE)) { if (super.requirePermissions(LecturePermission.MANAGE)) {
...@@ -93,4 +110,53 @@ public class LectureReportsView extends GenericCDIView { ...@@ -93,4 +110,53 @@ public class LectureReportsView extends GenericCDIView {
return lectureBean.userLectureSelects(getCurrentLectureGroup(), userView.getCurrentUser()); return lectureBean.userLectureSelects(getCurrentLectureGroup(), userView.getCurrentUser());
} }
public Integer getLectureId() {
return lectureId;
}
public void setLectureId(Integer lectureId) {
this.lectureId = lectureId;
}
public Lecture getCurrentLecture() {
if(currentLecture == null) {
currentLecture = lectureBean.findLecture(lectureId);
}
return currentLecture;
}
public void setCurrentLecture(Lecture currentLecture) {
this.currentLecture = currentLecture;
}
public List<EventUser> matchMulti(String what) {
UserSearchQuery usq = new UserSearchQuery();
usq.setSearch(what);
SearchResult<EventUser> sr = userBean.getThisEventsUsers(usq);
return sr.getResults();
}
public EventUser getMultiSearchUser() {
return multiSearchUser;
}
public void setMultiSearchUser(EventUser multiSearchUser) {
this.multiSearchUser = multiSearchUser;
}
public void addUserToLecture() {
if (multiSearchUser != null) {
lectureBean.participate(multiSearchUser, currentLecture);
super.addFaceMessage("lecture.participated");
multiSearchUser = null;
}
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!