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.

Reply via email to