Revision: 4367
Author: solomax666
Date: Wed Oct 5 10:48:31 2011
Log: - room polls are archived instead of physical delete
http://code.google.com/p/openmeetings/source/detail?r=4367
Modified:
/trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/PollManagement.java
/trunk/singlewebapp/src/app/org/openmeetings/app/persistence/beans/poll/RoomPoll.java
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/PollService.java
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/PollManagement.java
Sat Oct 1 11:15:55 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/PollManagement.java
Wed Oct 5 10:48:31 2011
@@ -42,12 +42,12 @@
@SuppressWarnings("unchecked")
public List<PollType> getPollTypes() {
- Query q = em.createQuery("select pt from PollType pt");
+ Query q = em.createQuery("SELECT pt FROM PollType pt");
return q.getResultList();
}
public PollType getPollType(Long typeId) {
- Query q = em.createQuery("select pt from PollType pt where
pt.pollTypesId = :pollTypesId");
+ Query q = em.createQuery("SELECT pt FROM PollType pt WHERE
pt.pollTypesId = :pollTypesId");
q.setParameter("pollTypesId", typeId);
return (PollType)q.getSingleResult();
}
@@ -72,21 +72,22 @@
public void clearRoomPollList(Long room_id){
try {
log.debug(" :: clearRoomPollList :: ");
- Query q = em.createQuery("DELETE FROM RoomPoll rp where
rp.room.rooms_id = :rooms_id");
+ Query q = em.createQuery("UPDATE RoomPoll rp SET rp.archived
= :archived WHERE rp.room.rooms_id = :rooms_id");
q.setParameter("rooms_id", room_id);
+ q.setParameter("archived", true);
q.executeUpdate();
} catch (Exception err) {
log.error("[clearRoomPollList]", err);
}
}
- //FIXME seems to be 1 poll for room by design
public RoomPoll getPoll(Long room_id) {
try {
log.debug(" :: getPoll :: " + room_id);
- Query q = em.createQuery("select rp from RoomPoll rp where
rp.room.rooms_id = :room_id");
+ Query q = em.createQuery("SELECT rp FROM RoomPoll rp WHERE
rp.room.rooms_id = :room_id AND rp.archived = :archived");
q.setParameter("room_id", room_id);
- return (RoomPoll)q.getResultList().get(0);
+ q.setParameter("archived", false);
+ return (RoomPoll)q.getSingleResult();
} catch (NoResultException nre) {
//expected
} catch (Exception err) {
@@ -98,8 +99,9 @@
public boolean hasPoll(Long room_id) {
try {
log.debug(" :: hasPoll :: " + room_id);
- Query q = em.createQuery("SELECT COUNT(rp) FROM RoomPoll rp WHERE
rp.room.rooms_id = :room_id");
+ Query q = em.createQuery("SELECT COUNT(rp) FROM RoomPoll rp WHERE
rp.room.rooms_id = :room_id AND rp.archived = :archived");
q.setParameter("room_id", room_id);
+ q.setParameter("archived", false);
return (Long)q.getSingleResult() > 0;
} catch (NoResultException nre) {
//expected
@@ -112,9 +114,11 @@
public boolean hasVoted(Long room_id, String streamid) {
try {
log.debug(" :: hasVoted :: " + room_id + ", " +
streamid);
- Query q = em.createQuery("SELECT rpa FROM RoomPollAnswers rpa WHERE
rpa.roomPoll.room.rooms_id = :room_id AND rpa.votedClient.streamid
= :streamid");
+ Query q = em.createQuery("SELECT rpa FROM RoomPollAnswers
rpa "
+ + "WHERE rpa.roomPoll.room.rooms_id = :room_id AND
rpa.votedClient.streamid = :streamid AND rpa.roomPoll.archived
= :archived");
q.setParameter("room_id", room_id);
q.setParameter("streamid", streamid);
+ q.setParameter("archived", false);
q.getSingleResult();
return true;
} catch (NoResultException nre) {
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/persistence/beans/poll/RoomPoll.java
Sat Oct 1 11:15:55 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/persistence/beans/poll/RoomPoll.java
Wed Oct 5 10:48:31 2011
@@ -30,6 +30,8 @@
private String pollQuestion;
@Column(name = "created")
private Date created;
+ @Column(name = "archived")
+ private boolean archived;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "poll_type_id")
private PollType pollType;
@@ -136,5 +138,19 @@
public void setRoom(Rooms room) {
this.room = room;
}
+
+ /**
+ * @return the archived
+ */
+ public boolean isArchived() {
+ return archived;
+ }
+
+ /**
+ * @param archived the archived to set
+ */
+ public void setArchived(boolean archived) {
+ this.archived = archived;
+ }
}
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/PollService.java
Sat Oct 1 11:15:55 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/PollService.java
Wed Oct 5 10:48:31 2011
@@ -37,7 +37,6 @@
private PollManagement pollManagement;
public String createPoll(String pollQuestion, int pollTypeId) {
- //FIXME poll is created with no checks
String returnValue = "";
try {
log.debug("createPoll: " + pollQuestion);
@@ -50,6 +49,9 @@
+ rc.getIsMod());
if (rc.getIsMod()) {
+ // will move all existing polls to the archive
+
pollManagement.clearRoomPollList(rc.getRoom_id());
+
sendNotification(currentcon, "newPoll",
new Object[] {
pollManagement.createPoll(rc,
pollQuestion,
(long) pollTypeId) });
--
You received this message because you are subscribed to the Google Groups
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/openmeetings-dev?hl=en.