Exemple #1
0
 def execute(self):
     if self.loginUser == None:
         backUrl = request.getAttribute('javax.servlet.forward.request_uri')
         if backUrl == None or backUrl == "":backUrl = request.requestURI    
         response.sendRedirect(CommonUtil.getSiteUrl(request) + "login.jsp?redUrl=" + CommonUtil.urlUtf8Encode(CommonUtil.getSiteServer(request) + backUrl))
         return
     
     accessControlService = __spring__.getBean("accessControlService")
     if accessControlService.isSystemAdmin(self.loginUser) == False:
         self.addActionError(u"没有管理权限.")
         return ActionResult.ERROR
     if request.getMethod() == "POST":            
         return self.coursePost()
     else: 
         qry = PrepareCourseQuery(""" pc.title, pc.prepareCourseId, pc.createDate,pc.metaSubjectId,pc.gradeId,pc.createUserId,u.loginName,u.trueName """)
         pager = self.params.createPager()
         pager.itemName = u"备课"
         pager.itemUnit = u"个"
         pager.pageSize = 20
         pager.totalRows = qry.count()
         preparecourse_list = qry.query_map(pager)
         request.setAttribute("preparecourse_list", preparecourse_list)
         request.setAttribute("pager", pager)
         response.setContentType("text/html; charset=UTF-8")
         return "/WEB-INF/ftl/course/admin_course_list.ftl"
Exemple #2
0
    def actionComment(self):
        if self.loginUser == None:
            self.addActionLink(
                u"返回活动",
                CommonUtil.getSiteUrl(request) +
                "manage/action/showAction.py?actionId=" +
                str(self.action.actionId))
            self.addActionError(u"请<a href='../../login.jsp'>登录</a>发表留言。")
            return self.ERROR

        title = self.params.getStringParam("title")
        comment = self.params.getStringParam("actionComment")
        if title == None or title == "":
            self.addActionLink(
                u"返回活动",
                CommonUtil.getSiteUrl(request) +
                "manage/action/showAction.py?actionId=" +
                str(self.action.actionId))
            self.addActionError(u"请输入讨论标题。")
            return self.ERROR
        if comment == None or comment == "":
            self.addActionLink(
                u"返回活动",
                CommonUtil.getSiteUrl(request) +
                "manage/action/showAction.py?actionId=" +
                str(self.action.actionId))
            self.addActionError(u"请输入讨论内容。")
            return self.ERROR

        actionReply = ActionReply()
        actionReply.setTopic(title)
        actionReply.setContent(comment)
        actionReply.setAddIp(self.get_client_ip())
        actionReply.setUserId(self.loginUser.userId)
        actionReply.setActionId(self.action.actionId)
        self.act_svc.addComment(actionReply)

        #计算转向页面地址
        pageSize = self.params.getIntParam("pageSize")
        totalRows = self.params.getIntParam("totalRows") + 1
        if pageSize <= 0: pageSize = 10
        pageCount = totalRows / pageSize
        if totalRows % pageSize != 0: pageCount = pageCount + 1
        response.sendRedirect("showAction.py?actionId=" +
                              str(self.action.actionId) + "&page=" +
                              str(pageCount))
        return None
    def execute(self):
        self.getBaseData()
        """
        发起或者编辑活动的前提:
        1,用户必须先登录
        2,登录用户必须是管理员或者备课成员
        """
        if self.loginUser == None:
            backUrl = request.getAttribute('javax.servlet.forward.request_uri')
            if backUrl == None or backUrl == "": backUrl = request.requestURI
            response.sendRedirect(
                CommonUtil.getSiteUrl(request) + "login.jsp?redUrl=" +
                CommonUtil.urlUtf8Encode(
                    CommonUtil.getSiteServer(request) + backUrl))
            return

        if self.prepareCourseId == 0:
            self.printer.write(u"无效的课程标识。")
            return
        self.prepareCourse = self.getBasePrepareCourse()
        if self.prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        now = Date()
        if self.prepareCourse.startDate > now:
            self.printer.write(u"备课时间还没开始,不允许增加活动 。")
            return

        if self.prepareCourse.endDate < now:
            self.printer.write(u"备课已经结束,不允许增加活动 。")
            return
        # 如果有了prepareCourse对象,就可以使用show_preparecourse_ok_info了
        page = self.getPrepareCoursePageWithCustomSkin(self.prepareCourse)
        widgets = [{
            "id": "placerholder1",
            "pageId": 0,
            "columnIndex": 2,
            "title": "",
            "module": "placeholder",
            "ico": "",
            "data": ""
        }]

        request.setAttribute("widget_list", widgets)
        request.setAttribute("page", page)
        request.setAttribute("prepareCourse", self.prepareCourse)
        request.setAttribute("prepareCourseId", self.prepareCourseId)

        if self.isPrepareCourseMember() == False:
            operation_result = u"不是本课程的成员。"
            request.setAttribute("operation_result", operation_result)
            return "/WEB-INF/ftl/course/show_preparecourse_ok_info.ftl"

        if request.getMethod() == "POST":
            return self.save_action()
        else:
            return self.show_action_edit()
Exemple #4
0
    def execute(self):
        # 解析 uri.
        if self.parseUri() == False:
            return self.sendNotFound(self.uri)

        # 得到要访问的协作组, 访问者角色, 并验证其可访问状态.
        if self.getGroupInfo(self.groupName) == False:
            actionLinks = [
                ActionLink(u"返回协作组列表",
                           CommonUtil.getSiteUrl(request) + "groups.action")
            ]
            request.setAttribute("actionLinks", actionLinks)
            return self.ACCESS_ERROR
        #print "group = ", self.group, ", visitor = ", self.visitor, ", gm = ", self.group_member

        uuid = group_svc.getGroupCateUuid(self.group)
        if uuid == CategoryService.GROUP_CATEGORY_GUID_KTYJ:
            #课题
            request.setAttribute("isKtGroup", "1")
        elif uuid == CategoryService.GROUP_CATEGORY_GUID_JTBK:
            #备课
            request.setAttribute("isKtGroup", "2")
        else:
            request.setAttribute("isKtGroup", "0")

        # 得到协作组首页.
        page = self.getGroupIndexPage(self.group)
        #print "page =", page
        if page == None:
            return self.sendNotFound()
        request.setAttribute("page", page)

        # 得到页面功能块.
        self.widget_list = self.getPageWidgets(page)
        #print "self.widget_list = ", self.widget_list
        request.setAttribute("widget_list", self.widget_list)
        request.setAttribute("widgets", self.widget_list)

        # 增加访问计数.
        self.incGroupVisitCount(self.group)

        return "/WEB-INF/group/default/index.ftl"
Exemple #5
0
    def execute(self):
        self.getBaseData()
        response.setContentType("text/html; charset=UTF-8")
        if self.loginUser == None:
            backUrl = request.getAttribute('javax.servlet.forward.request_uri')
            if backUrl == None or backUrl == "": backUrl = request.requestURI
            response.sendRedirect(
                CommonUtil.getSiteUrl(request) + "login.jsp?redUrl=" +
                CommonUtil.urlUtf8Encode(
                    CommonUtil.getSiteServer(request) + backUrl))
            return

        if self.prepareCourseId == 0:
            self.printer.write(u"无效的课程标识。")
            return
        prepareCourse = self.getBasePrepareCourse()
        if prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        if self.canView(prepareCourse) == False:
            self.printer.write(u"您无权查看本内容。")
            return

        if self.isPrepareCourseMember() == False:
            self.printer.write(u"您无权编辑备课内容。")
            return

        # 判断锁定人是否是当前用户
        if prepareCourse.lockedUserId == None or prepareCourse.lockedUserId == 0:
            self.printer.write(u"当前没有被锁定。")
            return
        if prepareCourse.lockedUserId != self.loginUser.userId:
            self.printer.write(u"当前集备的锁定者不是您本人。锁定者userId = " +
                               str(prepareCourse.lockedUserId))
            return
        prepareCourse.setLockedUserId(0)
        self.pc_svc.updatePrepareCourse(prepareCourse)
        response.sendRedirect("../../0/")
Exemple #6
0
 def getSiteUrl(self):
     return CommonUtil.getSiteUrl(request)
Exemple #7
0
 def getCurrentSiteUrl(self, request):
     return CommonUtil.getSiteUrl(request)
Exemple #8
0
    def execute(self):
        if self.loginUser == None:
            backUrl = request.getAttribute('javax.servlet.forward.request_uri')
            if backUrl == None or backUrl == "": backUrl = request.requestURI
            backUrl = backUrl + "?" + request.getQueryString()
            response.sendRedirect(
                CommonUtil.getSiteUrl(request) + "login.jsp?redUrl=" +
                CommonUtil.urlUtf8Encode(
                    CommonUtil.getSiteServer(request) + backUrl))

        userName = self.loginUser.trueName
        group = None
        if userName == None:
            userName = self.loginUser.loginName
        roomId = self.params.safeGetIntParam("roomId")
        groupId = self.params.safeGetIntParam("groupId")
        prepareCourseId = self.params.safeGetIntParam("prepareCourseId")
        prepareCourse = None
        iType = 0
        ChatRoomName = u"聊天室"

        if groupId == None or groupId == 0:
            if prepareCourseId == None or prepareCourseId == 0:
                if roomId == None or roomId == 0:
                    roomId = 1
            else:
                #备课
                iType = 1
                prepareCourse = self.prepareCourse_svc.getPrepareCourse(
                    prepareCourseId)
                if prepareCourse == None:
                    request.setAttribute("err", u"无法加载集体备课。")
                    return "/WEB-INF/ftl/chat/chatErr.ftl"
                pm = self.prepareCourse_svc.getPrepareCourseMemberByCourseIdAndUserId(
                    prepareCourseId, self.loginUser.userId)
                if pm == None:
                    request.setAttribute("err", u"只有集备成员才能进行聊天。")
                    return "/WEB-INF/ftl/chat/chatErr.ftl"
                ChatRoomName = prepareCourse.getTitle() + u"聊天室"
                roomId = str(
                    self.chatroom_svc.getPrepareCourseRoomId(prepareCourseId))
                if roomId == "-1":
                    request.setAttribute("err", u"没有找到集体备课信息")
                    return "/WEB-INF/ftl/chat/chatErr.ftl"
        else:
            iType = 2
            group = self.group_svc.getGroup(groupId)
            if group == None:
                request.setAttribute("err", u"无法加载协作组。")
                return "/WEB-INF/ftl/chat/chatErr.ftl"
            #判断组成员
            gm = self.group_svc.getGroupMemberByGroupIdAndUserId(
                groupId, self.loginUser.userId)
            if gm == None:
                request.setAttribute("err", u"只有该组成员才能进行聊天。")
                return "/WEB-INF/ftl/chat/chatErr.ftl"
            if gm.status != GroupMember.STATUS_NORMAL:
                if gm.status == GroupMember.STATUS_WAIT_AUDIT:
                    request.setAttribute("err", u"该组成员状态待审核。")
                    return "/WEB-INF/ftl/chat/chatErr.ftl"
                elif gm.status == GroupMember.STATUS_DELETING:
                    request.setAttribute("err", u"该组成员状态待删除。")
                    return "/WEB-INF/ftl/chat/chatErr.ftl"
                elif gm.status == GroupMember.STATUS_LOCKED:
                    request.setAttribute("err", u"该组成员状态被锁定。")
                    return "/WEB-INF/ftl/chat/chatErr.ftl"
                elif gm.status == GroupMember.STATUS_INVITING:
                    request.setAttribute("err", u"该组成员邀请未回应。")
                    return "/WEB-INF/ftl/chat/chatErr.ftl"
                else:
                    request.setAttribute("err", u"该组成员状态非正常状态。")
                    return "/WEB-INF/ftl/chat/chatErr.ftl"
            ChatRoomName = group.getGroupTitle() + u"聊天室"
            roomId = str(self.chatroom_svc.getRoomId(groupId))
            if roomId == "-1":
                request.setAttribute("err", u"没有找到群组信息")
                return "/WEB-INF/ftl/chat/chatErr.ftl"
        if roomId == None or roomId == 0:
            roomId = 1

        #检查是否是群组,是的话需要显示的群组的Banner
        request.setAttribute("type", iType)
        request.setAttribute("group", group)
        request.setAttribute("groupId", groupId)
        request.setAttribute("prepareCourseId", prepareCourseId)
        request.setAttribute("prepareCourse", prepareCourse)
        request.setAttribute("ChatRoomName", ChatRoomName)
        request.setAttribute("roomId", roomId)
        return "/WEB-INF/ftl/chat/chat.ftl"
    def execute(self):
        self.getBaseData()
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的课程标识。")
            return
        prepareCourse = self.getBasePrepareCourse()
        if prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        if self.canView(prepareCourse) == False:
            self.printer.write(u"您无权查看本内容。")
            return
        if request.getMethod() == "POST":
            self.pubComment()

        page = self.getPrepareCoursePageWithCustomSkin(prepareCourse)
        widgets = [{
            "id": "1",
            "pageId": 0,
            "columnIndex": 1,
            "title": u"备课基本信息",
            "module": "show_preparecourse_info",
            "ico": "",
            "data": ""
        }, {
            "id": "placerholder1",
            "pageId": 0,
            "columnIndex": 2,
            "title": "",
            "module": "placeholder",
            "ico": "",
            "data": ""
        }, {
            "id": "placerholder2",
            "pageId": 0,
            "columnIndex": 1,
            "title": "",
            "module": "placeholder",
            "ico": "",
            "data": ""
        }, {
            "id": "placerholder3",
            "pageId": 0,
            "columnIndex": 1,
            "title": "",
            "module": "placeholder",
            "ico": "",
            "data": ""
        }]
        qry = PrepareCourseMemberQuery(
            """ u.userId, u.userIcon, u.loginName,u.trueName,u.nickName""")
        qry.prepareCourseId = self.prepareCourse.prepareCourseId
        qry.orderType = 1
        qry.status = 0
        user_list = qry.query_map()
        prepareCourseEdit_list = self.pc_svc.getPrepareCourseEditList(
            self.prepareCourseId)
        request.setAttribute("prepareCourseEdit_list", prepareCourseEdit_list)
        request.setAttribute("user_list", user_list)
        request.setAttribute("page", page)
        request.setAttribute("widget_list", widgets)
        request.setAttribute("prepareCourse", prepareCourse)
        request.setAttribute("loginUser", self.loginUser)
        self.getCommentList()

        if prepareCourse.contentType == 2 or prepareCourse.contentType == 3 or prepareCourse.contentType == 4 or prepareCourse.contentType == 5 or prepareCourse.contentType == 100:
            #服务器 名称。默认是本站服务器
            courseFileServer = ""

            swf = prepareCourse.commonContent
            if swf == None or swf == "":
                request.setAttribute(
                    "error", u"该集备的共案选择了文件的方式,但并没有上载或者编写任何内容、或者没有保存成功,无法进行显示。")
                return "/WEB-INF/ftl/course/show_preparecourse_common_content2.ftl"

            if swf.find(".") > -1:
                swf = swf[0:swf.find(".")]

            prepareCourseFileServer = request.getSession().getServletContext(
            ).getInitParameter("PrepareCourseFileServer")
            pcFolder = CommonUtil.GetPrepareCourseFolder(request)
            if prepareCourseFileServer == None or prepareCourseFileServer == "":
                swfUrl = pcFolder[1] + str(
                    self.prepareCourse.prepareCourseId) + "/"
                courseFileServer = CommonUtil.getSiteUrl(request)
            else:
                if prepareCourseFileServer.endswith("/") == False:
                    prepareCourseFileServer += "/"
                courseFileServer = prepareCourseFileServer
                swfUrl = prepareCourseFileServer + "preparecoursefolder/" + str(
                    self.prepareCourse.prepareCourseId) + "/"

            swfUrl = swfUrl + swf + ".swf"
            request.setAttribute("swfUrl", swfUrl)
            request.setAttribute("courseFileServer", courseFileServer)

        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/course/show_preparecourse_common_content2.ftl"
Exemple #10
0
    def execute(self):
        if self.loginUser == None:
            request.setAttribute("error", u"请重新登录。")
            return "/WEB-INF/ftl/show_resource_swf.ftl"

        param = ParamUtil(request)
        resourceId = self.params.safeGetIntParam("resource")
        resourceService = __jitar__.getResourceService()

        if resourceId == 0:
            request.setAttribute("error", u"缺少文件信息。")
            return "/WEB-INF/ftl/show_resource_swf.ftl"

        resource = resourceService.getResource(resourceId)
        if resource == None:
            request.setAttribute("error", u"无法加载资源。")
            return "/WEB-INF/ftl/show_resource_swf.ftl"
        #=======================================================================
        # enc = EncryptDecrypt("zhongjiaoqixing")
        # try:
        #    resfile = enc.decrypt(resfile)
        # except:
        #    request.setAttribute("error", u"解压缩过程中出现错误。")
        #    return "/WEB-INF/ftl/show_resource.ftl"
        # finally:
        #    encc = None
        #=======================================================================
        try:
            resfile = resource.href
            filename = resfile.lower()
            fileUserConfigPath = request.getSession().getServletContext(
            ).getInitParameter("userPath")
            if fileUserConfigPath == None or fileUserConfigPath == "":
                resfileapth = request.getSession().getServletContext(
                ).getRealPath("/" + resfile)
            else:
                if fileUserConfigPath.endswith("\\") == False:
                    fileUserConfigPath = fileUserConfigPath + "\\"
                resfileapth = fileUserConfigPath + resfile.replace("/", "\\")

            ff = File(resfileapth)
            if ff.isFile() == False or ff.exists() == False:
                request.setAttribute("error", u"资源文件不存在,无法进行预览。")
                return "/WEB-INF/ftl/show_resource_swf.ftl"

            #这些文件直接显示
            if filename.endswith(".jpg") or filename.endswith(
                    ".gif") or filename.endswith(".png"):
                response.sendRedirect(CommonUtil.getSiteUrl(request) + resfile)
                return
            if filename.endswith(".txt"):
                content = FileUtils.readFileToString(
                    ff, CommonUtil.getFileEncoding(resfileapth))
                request.setAttribute("content", content)
                return "/WEB-INF/ftl/show_resource_txt.ftl"

            #PDF2SWFPath = request.getSession().getServletContext().getInitParameter("pdf2swfPath")
            #if PDF2SWFPath == None or PDF2SWFPath == "":
            #request.setAttribute("error", u"没有配置文件转换服务。")
            #return "/WEB-INF/ftl/show_resource_swf.ftl"

            if filename.endswith(".doc") or filename.endswith(
                    ".docx"
            ):  # or filename.endswith(".ppt") or filename.endswith(".pptx") or filename.endswith(".xls") or filename.endswith(".xlsx"):
                swf = resfileapth[0:resfileapth.find(".")] + ".swf"
                file = File(swf)
                if file.isFile() == False or file.exists() == False:
                    #converter = DocConverter(JacobPDFConverter(), SWFToolsSWFConverter(PDF2SWFPath))
                    #converter.convert(resfileapth)
                    #converter = None

                    #转换服务
                    server_ip = request.getSession().getServletContext(
                    ).getInitParameter("server_ip")
                    server_port = request.getSession().getServletContext(
                    ).getInitParameter("server_port")
                    timeout = request.getSession().getServletContext(
                    ).getInitParameter("timeout")
                    fcs = FCSConverter()
                    fcs.fcs(
                        server_ip, server_port, timeout, resource.title,
                        resfileapth[0:resfileapth.find(".")] + "." +
                        filename.split(".")[-1], file.toString(), "0")

                    request.setAttribute("resourceId", resourceId)
                    request.setAttribute(
                        "showWaiting",
                        self.params.safeGetStringParam("showWaiting"))
                swf = CommonUtil.getSiteUrl(
                    request) + resfile[0:resfile.find(".")] + ".swf"
                request.setAttribute("swf", swf)
                return "/WEB-INF/ftl/show_resource_swf.ftl"
            #if filename.endswith(".pdf"):
            #swf = resfileapth[0:resfileapth.find(".")] + ".swf"
            #file = File(swf)
            #if file.isFile() == False or file.exists() == False:
            #converter = SWFToolsSWFConverter(PDF2SWFPath)
            #converter.convert2SWF(resfileapth)
            #converter = None
            #request.setAttribute("resourceId", resourceId)
            #request.setAttribute("showWaiting", self.params.safeGetStringParam("showWaiting"))
            #swf = CommonUtil.getSiteUrl(request) + resfile[0:resfile.find(".")] + ".swf"
            #request.setAttribute("swf", swf)
            #return "/WEB-INF/ftl/show_resource_swf.ftl"

            if filename.endswith(".swf"):
                file = File(resfileapth)
                if file.isFile() == False or file.exists() == False:
                    request.setAttribute("error", u"swf 文件不存在,无法进行预览。")
                    return "/WEB-INF/ftl/show_resource_swf.ftl"
                swf = CommonUtil.getSiteUrl(request) + resfile
                request.setAttribute("orginIsSwf", "")
                request.setAttribute("swf", swf)
                return "/WEB-INF/ftl/show_resource_swf.ftl"

            request.setAttribute("error", u"此文件不支持预览。")
            return "/WEB-INF/ftl/show_resource_swf.ftl"
        except BaseException, varExption:
            if varExption != None:
                request.setAttribute(
                    "error", u"预览此文件时出错,并且已经被捕获。<br/><br/>" + str(varExption))
            else:
                request.setAttribute("error", u"预览此文件时出错,并且并且没有捕获到错误信息。")
            return "/WEB-INF/ftl/show_resource_swf.ftl"
    def execute(self):
        self.getBaseData()        
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的课程标识。")
            return
        prepareCourse = self.getBasePrepareCourse()
        if prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        if self.canView(prepareCourse) == False:
            self.printer.write(u"您无权查看本内容。")
            return
        showUser = None
        if self.params.existParam("userId"):                      
            self.userId = self.params.getIntParam("userId")
            if self.userId == None or self.userId == 0:
                self.printer.write(u"请选择一个要查看的用户。")
                return
            showUser = self.user_svc.getUserById(self.userId)
        elif self.params.existParam("userGuid"): 
            self.userGuid = self.params.safeGetStringParam("userGuid")
            showUser = self.user_svc.getUserByGuid(self.userGuid)
        if showUser == None:
            self.printer.write(u"无效的用户。")
            return
        
        self.userId = showUser.getUserId()
        
        self.prepareCourseMember = self.pc_svc.getPrepareCourseMemberByCourseIdAndUserId(self.prepareCourseId, self.userId)
        if self.prepareCourseMember == None:
            self.printer.write(u"您访问的用户不在此备课内,或者未通过审核,或者加载成员对象失败。")
            return
        if request.getMethod() == "POST":
            self.saveComment()
            
        page = self.getPrepareCoursePageWithCustomSkin(prepareCourse)
        widgets = [
                   {"id": "1", "pageId":0, "columnIndex":1, "title":u"备课基本信息", "module":"show_preparecourse_info", "ico":"", "data":""},
                   {"id": "placerholder1", "pageId":0, "columnIndex":2, "title":"", "module":"placeholder", "ico":"", "data":""},
                   # {"id": "placerholder2", "pageId":0, "columnIndex":1,"title":"","module":"placeholder", "ico":"", "data":""},
                   {"id": "placerholder3", "pageId":0, "columnIndex":1, "title":"", "module":"placeholder", "ico":"", "data":""}
                  ]
        qry = PrepareCourseMemberQuery(""" u.userId, u.userIcon, u.loginName,u.trueName,u.nickName""")  
        qry.prepareCourseId = self.prepareCourse.prepareCourseId
        qry.orderType = 1
        qry.status = 0
        user_list = qry.query_map()
        prepareCourseEdit_list = self.pc_svc.getPrepareCourseEditList(self.prepareCourseId)
        request.setAttribute("prepareCourseEdit_list", prepareCourseEdit_list)
        request.setAttribute("user_list", user_list)        
        request.setAttribute("page", page)
        request.setAttribute("widget_list", widgets)
        request.setAttribute("prepareCourse", prepareCourse)
        request.setAttribute("prepareCourseMember", self.prepareCourseMember)        
        request.setAttribute("showUser", showUser)
        request.setAttribute("loginUser", self.loginUser)
        self.getPrepareCoursePrivateCommentList()
        
        punshScore= self.pun_svc.getUPunishScore(ObjectType.OBJECT_TYPE_PREPARECOURSEMEMBER.getTypeId() , self.prepareCourseMember.prepareCourseMemberId)
        if punshScore!=None:
            if punshScore.getScore()<0 or punshScore.getScore()>0:
                request.setAttribute("scoreCreateUserId", punshScore.getCreateUserId())
                request.setAttribute("scoreCreateUserName", punshScore.getCreateUserName())
                request.setAttribute("score", -1*punshScore.getScore())
                request.setAttribute("scoreReason", punshScore.getReason())
                request.setAttribute("scoreDate", punshScore.getPunishDate())
                request.setAttribute("scoreObjId", punshScore.getObjId())
                request.setAttribute("scoreObjTitle", punshScore.getObjTitle())
                        
        if self.prepareCourseMember.contentType == 2 or self.prepareCourseMember.contentType == 3 or self.prepareCourseMember.contentType == 4 or self.prepareCourseMember.contentType == 5 or self.prepareCourseMember.contentType == 100:
            #服务器 名称。默认是本站服务器
            courseFileServer = ""
            #文件名
            swf = self.prepareCourseMember.privateContent
            if swf == None or swf == "":
                request.setAttribute("error", u"您的个案选择了文件的方式,但并没有上载或者编写任何内容、或者没有保存成功,无法进行显示。")
                return "/WEB-INF/ftl/course/show_preparecourse_user_content_2.ftl"
            if swf.find(".") > -1:
                swf = swf[0:swf.find(".")]

            prepareCourseFileServer = request.getSession().getServletContext().getInitParameter("PrepareCourseFileServer")
            pcFolder = CommonUtil.GetPrepareCourseFolder(request)
            if prepareCourseFileServer == None or prepareCourseFileServer == "":
                swfUrl = pcFolder[1] + str(self.prepareCourse.prepareCourseId) + "/"
                courseFileServer = CommonUtil.getSiteUrl(request)
            else:
                if prepareCourseFileServer.endswith("/") == False:prepareCourseFileServer += "/"
                courseFileServer = prepareCourseFileServer
                swfUrl = prepareCourseFileServer + "preparecoursefolder/" + str(self.prepareCourse.prepareCourseId) + "/"
            swfUrl = swfUrl + swf + ".swf"
            request.setAttribute("swfUrl", swfUrl)
            request.setAttribute("courseFileServer", courseFileServer)
            #request.setAttribute("prepareCourseUrl", pcFolder[1])
            
        response.setContentType("text/html; charset=UTF-8")        
        return "/WEB-INF/ftl/course/show_preparecourse_user_content_2.ftl"
    def execute(self):
        if self.loginUser == None:
            backUrl = request.getAttribute('javax.servlet.forward.request_uri')
            if backUrl == None or backUrl == "": backUrl = request.requestURI
            response.sendRedirect(
                CommonUtil.getSiteUrl(request) + "login.jsp?redUrl=" +
                CommonUtil.urlUtf8Encode(
                    CommonUtil.getSiteServer(request) + backUrl))
            return
        """
        ********************** 注意:本文件只提供编辑 ****************************************        
        """
        self.prepareCourseId = self.params.safeGetIntParam("prepareCourseId")
        self.group = self.pc_svc.getGroupOfPrepareCourse(self.prepareCourseId)
        if self.group == None:
            actionErrors = [u"无法加载协作组信息。"]
            request.setAttribute("actionErrors", actionErrors)
            return self.ERROR

        # 判断当前用户是否是组内成员
        gm = self.group_svc.getGroupMemberByGroupIdAndUserId(
            self.group.groupId, self.loginUser.userId)
        accessControlService = __spring__.getBean("accessControlService")
        if gm == None:
            if accessControlService.isSystemAdmin(self.loginUser) == False:
                actionErrors = [u"做人要厚道,你不是本组的成员。"]
                request.setAttribute("actionErrors", actionErrors)
                return self.ERROR
        if self.prepareCourseId > 0:
            self.prepareCourse = self.pc_svc.getPrepareCourse(
                self.prepareCourseId)
            if self.prepareCourse != None:
                if self.prepareCourse.createUserId != self.loginUser.userId and self.prepareCourse.leaderId != self.loginUser.userId:
                    actionErrors = [u"你没有权限继续操作。"]
                    request.setAttribute("actionErrors", actionErrors)
                    return self.ERROR
        else:
            if accessControlService.isSystemAdmin(self.loginUser) == False:
                if gm.getStatus() != GroupMember.STATUS_NORMAL:
                    actionErrors = [u"你目前的成员状态不正常,无法继续操作。"]
                    request.setAttribute("actionErrors", actionErrors)
                    return self.ERROR

            if accessControlService.isSystemAdmin(self.loginUser) == False:
                if gm.groupRole < GroupMember.GROUP_ROLE_VICE_MANAGER:
                    actionErrors = [u"权限不足,无法继续操作。"]
                    request.setAttribute("actionErrors", actionErrors)
                    return self.ERROR

        request.setAttribute("loginUser", self.loginUser)

        if self.prepareCourseId > 0:
            self.prepareCourse = self.pc_svc.getPrepareCourse(
                self.prepareCourseId)
            if self.prepareCourse != None:
                request.setAttribute("prepareCourse", self.prepareCourse)
                request.setAttribute("group", self.group)
        else:
            self.printer.msg = u"此处不能创建新备课、"
            return self.printer.printError()

        if request.getMethod() == "POST":
            return self.saveOrUpdatePrepareCourse()
        else:
            return self.getPrepareCourse()
Exemple #13
0
    def execute(self):
        self.pc_svc = __jitar__.getPrepareCourseService()
        site_config = SiteConfig()
        site_config.get_config()

        self.out = response.writer
        self.params = ParamUtil(request)
        actionId = self.params.getIntParam("actionId")

        if actionId == None or actionId == 0:
            self.addActionLink(u"返回活动列表",
                               CommonUtil.getSiteUrl(request) + "actions.py")
            self.addActionError(u"缺少标识。")
            return self.ERROR
        #更新统计
        self.act_svc.updateActionUserStatById(actionId)

        self.action = self.act_svc.getActionById(actionId)

        if self.action == None:
            self.addActionLink(u"返回活动列表",
                               CommonUtil.getSiteUrl(request) + "actions.py")
            self.addActionError(u"该活动不存在。")
            return self.ERROR
        if self.action.status != 0 and self.action.status != 3:
            self.addActionLink(u"返回活动列表",
                               CommonUtil.getSiteUrl(request) + "actions.py")
            self.addActionError(u"该活动的状态目前不正常。不能浏览活动信息。")
            return self.ERROR

        if self.can_view() == False:
            self.addActionLink(u"返回活动列表",
                               CommonUtil.getSiteUrl(request) + "actions.py")
            self.addActionError(u"该活动为非公开,你无权查看。")
            return self.ERROR

        #得到该活动的回复
        self.get_reply_list()
        # 能否参加的标志
        self.canAttend = self.current_can_attend_action()
        # loginUser 来自 BaseAction
        user_list = self.act_svc.getActionUserWithDistUnit()

        if request.getMethod() == "POST":
            if self.params.getStringParam("cmd") == "comment":
                #发表评论的条件:
                # 登录用户,活动成员,或者组内成员
                if self.loginUser == None:
                    self.addActionLink(
                        u"返回活动",
                        CommonUtil.getSiteUrl(request) +
                        "manage/action/showAction.py?actionId=" +
                        str(self.action.actionId))
                    self.addActionError(u"请先登录。")
                    return self.ERROR
                canPublishComment = self.can_publish_comment()
                if canPublishComment["status"] == "true":
                    return self.actionComment()
                else:
                    self.addActionLink(
                        u"返回活动",
                        CommonUtil.getSiteUrl(request) +
                        "manage/action/showAction.py?actionId=" +
                        str(self.action.actionId))
                    self.addActionError(canPublishComment["message"])
                    return self.ERROR
            else:
                if self.canAttend == "1":
                    if self.act_svc.userIsInAction(
                            self.loginUser.userId,
                            self.action.actionId) == False:
                        #检查参加的人数
                        if self.action.userLimit != 0:
                            uc = self.act_svc.getUserCountByActionId(
                                self.action.actionId)
                            if uc >= self.action.userLimit:
                                self.addActionLink(
                                    u"返回活动",
                                    CommonUtil.getSiteUrl(request) +
                                    "manage/action/showAction.py?actionId=" +
                                    str(self.action.actionId))
                                self.addActionError(u"此活动人数已满。")
                                return self.ERROR
                        return self.saveActionUser()
                    else:
                        self.addActionLink(
                            u"返回活动",
                            CommonUtil.getSiteUrl(request) +
                            "manage/action/showAction.py?actionId=" +
                            str(self.action.actionId))
                        self.addActionError(u"您已经参加了该活动,请勿重复申请。")
                        return self.ERROR
                else:
                    self.addActionLink(
                        u"返回活动列表",
                        CommonUtil.getSiteUrl(request) + "actions.py")
                    self.addActionError(u"您暂时不能参加该活动。")
                    return self.ERROR

        if self.loginUser == None:
            can_manage = "0"
        else:
            if self.act_svc.canManageAction(self.action,
                                            self.loginUser) == True:
                can_manage = "1"
            else:
                can_manage = "0"

        redUrl = request.getRequestURI()
        if request.getQueryString() != None:
            redUrl += '?' + request.getQueryString()
        if self.loginUser != None:
            actionUser = self.act_svc.getActionUserByUserIdAndActionId(
                self.loginUser.userId, self.action.actionId)
            request.setAttribute("actionUser", actionUser)
        request.setAttribute("can_manage", can_manage)
        request.setAttribute("can_comment",
                             self.check_user_can_post_comment_action())
        request.setAttribute("action", self.action)
        request.setAttribute("loginUser", self.loginUser)
        request.setAttribute("canAttend", self.canAttend)
        request.setAttribute("redUrl", redUrl)
        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/action/action_show.ftl"
    def execute(self):
        self.getBaseData()
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的课程标识。")
            return
        prepareCourse = self.getBasePrepareCourse()
        if prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        if self.canView(prepareCourse) == False:
            self.printer.write(u"您无权查看本内容。")
            return

        prepareCourseEditId = self.params.getIntParam("prepareCourseEditId")
        if prepareCourseEditId == None or prepareCourseEditId == 0:
            self.printer.write(u"请选择一个共案历史记录。")
            return
        prepareCourseEdit = self.pc_svc.getPrepareCourseEdit(
            prepareCourseEditId)
        if prepareCourseEdit == None:
            self.printer.write(u"未能加载共案历史记录。")
            return

        page = self.getPrepareCoursePageWithCustomSkin(prepareCourse)
        widgets = [{
            "id": "1",
            "pageId": 0,
            "columnIndex": 1,
            "title": u"备课基本信息",
            "module": "show_preparecourse_info",
            "ico": "",
            "data": ""
        }, {
            "id": "placerholder1",
            "pageId": 0,
            "columnIndex": 2,
            "title": "",
            "module": "placeholder",
            "ico": "",
            "data": ""
        }, {
            "id": "placerholder2",
            "pageId": 0,
            "columnIndex": 1,
            "title": "",
            "module": "placeholder",
            "ico": "",
            "data": ""
        }, {
            "id": "placerholder3",
            "pageId": 0,
            "columnIndex": 1,
            "title": "",
            "module": "placeholder",
            "ico": "",
            "data": ""
        }]
        qry = PrepareCourseMemberQuery(
            """ u.userId, u.userIcon, u.loginName,u.trueName,u.nickName""")
        qry.prepareCourseId = self.prepareCourse.prepareCourseId
        user_list = qry.query_map()
        prepareCourseEdit_list = self.pc_svc.getPrepareCourseEditList(
            self.prepareCourseId)
        request.setAttribute("prepareCourseEdit_list", prepareCourseEdit_list)
        request.setAttribute("user_list", user_list)
        request.setAttribute("page", page)
        request.setAttribute("widget_list", widgets)
        request.setAttribute("prepareCourse", prepareCourse)
        request.setAttribute("prepareCourseEdit", prepareCourseEdit)
        if prepareCourse.contentType == 2 or prepareCourse.contentType == 3 or prepareCourse.contentType == 4 or prepareCourse.contentType == 5 or prepareCourse.contentType == 100:
            swf = prepareCourseEdit.content
            if swf == None: swf = ""
            if swf.find(".") > -1:
                swf = swf[0:swf.find(".")]

            prepareCourseFileServer = request.getSession().getServletContext(
            ).getInitParameter("PrepareCourseFileServer")
            pcFolder = CommonUtil.GetPrepareCourseFolder(request)
            if prepareCourseFileServer == None or prepareCourseFileServer == "":
                swfUrl = pcFolder[1] + str(
                    self.prepareCourse.prepareCourseId) + "/"
                courseFileServer = CommonUtil.getSiteUrl(request)
            else:
                if prepareCourseFileServer.endswith("/") == False:
                    prepareCourseFileServer += "/"
                courseFileServer = prepareCourseFileServer
                swfUrl = prepareCourseFileServer + "preparecoursefolder/" + str(
                    self.prepareCourse.prepareCourseId) + "/"
            swfUrl = swfUrl + swf + ".swf"
            request.setAttribute("swfUrl", swfUrl)
            request.setAttribute("courseFileServer", courseFileServer)

        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/course/show_preparecourse_history_content2.ftl"
Exemple #15
0
    def execute(self):
        self.getBaseData()        
        response.setContentType("text/html; charset=UTF-8")
        if self.loginUser == None:
            backUrl = request.getAttribute('javax.servlet.forward.request_uri')
            if backUrl == None or backUrl == "":backUrl = request.requestURI    
            response.sendRedirect(CommonUtil.getSiteUrl(request) + "login.jsp?redUrl=" + CommonUtil.urlUtf8Encode(CommonUtil.getSiteServer(request) + backUrl))
            return
        
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的课程标识。")
            return
        prepareCourse = self.getBasePrepareCourse()
        if prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        if self.canView(prepareCourse) == False:
            self.printer.write(u"您无权查看本内容。")
            return
        
        if self.isPrepareCourseMember() == False:
            self.printer.write(u"您无权编辑备课内容。")
            return
        
        
        page = self.getPrepareCoursePageWithCustomSkin(prepareCourse)
        widgets = [
                   {"id": "1", "pageId":0, "columnIndex":1, "column":1, "title":u"备课基本信息", "module":"show_preparecourse_info", "ico":"", "data":""},
                   {"id": "placerholder1", "pageId":0, "columnIndex":2, "column":2, "title":"", "module":"placeholder", "ico":"", "data":""}
                  ]

        if self.prepareCourse.lockedUserId > 0 and self.prepareCourse.lockedUserId != self.loginUser.userId:
            user = self.user_svc.getUserById(self.prepareCourse.lockedUserId)
            if user == None:
                self.printer.write(u"此备课已经被 未知的人 签出,你暂时不能进行编辑该备课。")
            else:
                d = self.prepareCourse.lockedDate
                f = SimpleDateFormat(u"yyyy年M月d日 H点m分s秒")
                d = f.format(d)
                self.printer.write(u"此备课已经被 " + user.trueName + u" 于 " + d + u" 签出,你暂时不能进行编辑该备课。")
            return
        else:
            # 设置锁标记,
            if prepareCourse.contentType == None or (prepareCourse.contentType != 2 and prepareCourse.contentType != 3 and prepareCourse.contentType != 4):
                self.prepareCourse.setLockedUserId(self.loginUser.userId)
                self.prepareCourse.setLockedDate(Date())
                self.pc_svc.updatePrepareCourse(self.prepareCourse)
        request.setAttribute("widget_list", widgets)
        request.setAttribute("page", page)
        request.setAttribute("prepareCourse", prepareCourse)
        request.setAttribute("prepareCourseId", self.prepareCourseId)
        ed = EncryptDecrypt()
        strPrepareCourseId = ed.encrypt(str(self.prepareCourseId) + "|1")
        ed = None            
        request.setAttribute("EncryptPrepareCourseId", strPrepareCourseId)
        
        prepareCourseFileServer = request.getSession().getServletContext().getInitParameter("PrepareCourseFileServer")
        if prepareCourseFileServer != None and prepareCourseFileServer != "":
            request.setAttribute("prepareCourseFileServer", prepareCourseFileServer)
            request.setAttribute("userTicket", self.getUserTicket())
        if request.getMethod() == "POST":
            return self.saveOrUpdate()        
        
        return "/WEB-INF/ftl/course/show_preparecourse_common_edit.ftl"
Exemple #16
0
    def execute(self):
        self.getBaseData()
        response.setContentType("text/html; charset=UTF-8")
        if self.loginUser == None:
            backUrl = request.getAttribute('javax.servlet.forward.request_uri')
            if backUrl == None or backUrl == "": backUrl = request.requestURI
            response.sendRedirect(
                CommonUtil.getSiteUrl(request) + "login.jsp?redUrl=" +
                CommonUtil.urlUtf8Encode(
                    CommonUtil.getSiteServer(request) + backUrl))
            return

        if self.prepareCourseId == 0:
            self.printer.write(u"无效的课程标识。")
            return
        prepareCourse = self.getBasePrepareCourse()
        if prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        if self.canView(prepareCourse) == False:
            self.printer.write(u"您无权查看本内容。")
            return

        if self.isPrepareCourseMember() == False:
            self.printer.write(u"您无权编辑备课内容。")
            return

        page = self.getPrepareCoursePageWithCustomSkin(prepareCourse)
        widgets = [{
            "id": "1",
            "pageId": 0,
            "columnIndex": 1,
            "title": u"备课基本信息",
            "module": "show_preparecourse_info",
            "ico": "",
            "data": ""
        }, {
            "id": "placerholder1",
            "pageId": 0,
            "columnIndex": 2,
            "title": "",
            "module": "placeholder",
            "ico": "",
            "data": ""
        }]

        request.setAttribute("widget_list", widgets)
        request.setAttribute("page", page)
        request.setAttribute("prepareCourse", prepareCourse)
        request.setAttribute("prepareCourseId", self.prepareCourseId)

        self.prepareCourseMember = self.pc_svc.getPrepareCourseMemberByCourseIdAndUserId(
            self.prepareCourseId, self.loginUser.userId)
        if self.prepareCourseMember == None:
            operation_result = u"您不是该课的成员,或者加载对象失败。"
            request.setAttribute("operation_result", operation_result)
            return "/WEB-INF/ftl/course/show_preparecourse_ok_info.ftl"

        if request.getMethod() == "POST":
            return self.saveOrUpdate()

        if self.prepareCourseMember.contentType == 0:
            return "/WEB-INF/ftl/course/show_preparecourse_user_edit_first.ftl"
            #if (self.pdf2swfPath != None and self.pdf2swfPath != "") or (self.PrepareCourseFileServer != None and self.PrepareCourseFileServer != ""):
            #    return "/WEB-INF/ftl/course/show_preparecourse_user_edit_first.ftl"
            #else:
            #    self.prepareCourseMember.contentType = 1
            #    self.pc_svc.updatePrepareCourseMember(self.prepareCourseMember)
            #    response.sendRedirect("show_preparecourse_user_edit.py")

        else:
            ed = EncryptDecrypt()
            strPrepareCourseId = ed.encrypt(str(self.prepareCourseId) + "|0")
            ed = None
            request.setAttribute("EncryptPrepareCourseId", strPrepareCourseId)
            request.setAttribute("prepareCourseMember",
                                 self.prepareCourseMember)

            prepareCourseFileServer = request.getSession().getServletContext(
            ).getInitParameter("PrepareCourseFileServer")
            if prepareCourseFileServer != None and prepareCourseFileServer != "":
                request.setAttribute("prepareCourseFileServer",
                                     prepareCourseFileServer)
                request.setAttribute("userTicket", self.getUserTicket())

            return "/WEB-INF/ftl/course/show_preparecourse_user_edit.ftl"
Exemple #17
0
    def execute(self):
        self.getBaseData()

        if self.prepareCourseId == 0:
            self.printer.write(u"无效的备课标识。")
            return
        if self.loginUser == None:
            backUrl = request.getAttribute('javax.servlet.forward.request_uri')
            if backUrl == None or backUrl == "": backUrl = request.requestURI
            response.sendRedirect(
                CommonUtil.getSiteUrl(request) + "login.jsp?redUrl=" +
                CommonUtil.urlUtf8Encode(
                    CommonUtil.getSiteServer(request) + backUrl))
            return

        prepareCourse = self.getBasePrepareCourse()
        if prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return

        page = self.getPrepareCoursePageWithCustomSkin(prepareCourse)
        widgets = [{
            "id": "1",
            "pageId": 0,
            "columnIndex": 1,
            "title": u"备课基本信息",
            "module": "show_preparecourse_info",
            "ico": "",
            "data": ""
        }, {
            "id": "placerholder1",
            "pageId": 0,
            "columnIndex": 2,
            "title": "",
            "module": "placeholder",
            "ico": "",
            "data": ""
        }]
        request.setAttribute("widgets", widgets)
        request.setAttribute("widget_list", widgets)
        request.setAttribute("page", page)
        request.setAttribute("prepareCourse", prepareCourse)

        # 检查是否是成员
        isExist = self.pc_svc.checkUserInPreCourse(
            prepareCourse.prepareCourseId, self.loginUser.userId)

        if isExist == True:
            show_result2 = u"您已经是备课  " + prepareCourse.title + u" 的成员。"
            request.setAttribute("show_result2", show_result2)

        if request.getMethod() == "POST":
            content = self.params.safeGetStringParam("content")
            if content == None or content == "":
                show_result1 = u"请输入申请内容。"
                request.setAttribute("show_result1", show_result1)
            else:
                prepareCourseMember = PrepareCourseMember()
                prepareCourseMember.setPrepareCourseId(
                    prepareCourse.prepareCourseId)
                prepareCourseMember.setUserId(self.loginUser.userId)
                prepareCourseMember.setReplyCount(0)
                prepareCourseMember.setJoinDate(Date())
                prepareCourseMember.setStatus(1)
                prepareCourseMember.setPrivateContent(content)
                prepareCourseMember.setContentLastupdated(Date())
                self.pc_svc.addPrepareCourseMember(prepareCourseMember)

                show_result2 = u"您的申请已经提交,请等待审核。"
                request.setAttribute("show_result2", show_result2)
        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/course/join_preparecourse.ftl"