Beispiel #1
0
class js_resource:
    def execute(self):
        # 完整的调用参数:
        # top=10&count=10&type=0&cateid=53&author=1&date=1&groupId=42
        unitService = __jitar__.unitService
        self.params = ParamUtil(request)
        ShowCount = self.params.getIntParam("count")
        ShowTop = self.params.getIntParam("top")
        ShowType = self.params.getIntParam("type")
        ShowAuthor = self.params.getIntParamZeroAsNull("author")
        ShowDate = self.params.getIntParamZeroAsNull("date")

        unitId = self.params.getIntParamZeroAsNull("unitid")
        cateid = self.params.getIntParamZeroAsNull("cateid")
        groupId = self.params.getIntParamZeroAsNull("groupId")
        if unitId == None:
            rootUnit = unitService.getRootUnit()
        else:
            rootUnit = unitService.getUnitById(unitId)

        if rootUnit == None:
            response.getWriter().println(u"document.write('没有根单位。')")
            return

        if ShowTop == None or ShowTop == 0:
            ShowTop = 10
        if ShowCount == None or ShowCount == 0:
            ShowCount = 10
        if ShowType == None:
            ShowType = 0

        if groupId != None and groupId != 0:
            qry = GroupResourceQuery(
                """ r.resourceId, r.title, r.createDate, u.userId, u.loginName, u.trueName """
            )
            qry.groupId = groupId
            if ShowType == 1:
                # 小组精华
                qry.isGroupBest = True
        else:
            qry = ResourceQuery(
                """ r.resourceId, r.title, r.createDate, u.userId, u.loginName, u.trueName """
            )
            qry.sysCateId = cateid
            if ShowType == 1:
                #推荐资源
                qry.custormAndWhereClause = "r.rcmdPathInfo Like '%/" + str(
                    rootUnit.unitId
                ) + "/%' and r.approvedPathInfo Like '%/" + str(
                    rootUnit.unitId) + "/%'"
            else:
                qry.custormAndWhereClause = "r.approvedPathInfo Like '%/" + str(
                    rootUnit.unitId) + "/%'"
        resource_list = qry.query_map(ShowTop)
        request.setAttribute("resource_list", resource_list)
        request.setAttribute("ShowAuthor", ShowAuthor)
        request.setAttribute("ShowDate", ShowDate)
        request.setAttribute("ShowCount", ShowCount)
        response.contentType = "text/html; charset=utf-8"
        return "/WEB-INF/ftl/js_resource.ftl"
Beispiel #2
0
class js_user:
    def execute(self):
        # 完整的调用参数:
        # js_user.py?top=10&count=10&type=2&cateid=99

        # 默认支持 subjectId,gradeId 参数带这些值,默认是支持的
        # 更多参数请参见  user_query 的成员定义。

        self.params = ParamUtil(request)
        ShowCount = self.params.getIntParam("count")
        ShowTop = self.params.getIntParam("top")
        ShowType = self.params.getIntParam("type")

        unitId = self.params.getIntParamZeroAsNull("unitid")
        cateid = self.params.getIntParamZeroAsNull("cateid")
        groupId = self.params.getIntParamZeroAsNull("groupId")
        if ShowTop == None or ShowTop == 0:
            ShowTop = 10
        if ShowCount == None or ShowCount == 0:
            ShowCount = 10
        if ShowType == None:
            ShowType = 0

        qry = UserQuery(" u.userId,u.loginName,u.trueName ")
        qry.unitId = unitId
        qry.sysCateId = cateid
        qry.groupId = groupId

        if ShowType > 0: qry.userTypeId = ShowType

        user_list = qry.query_map(ShowTop)
        request.setAttribute("user_list", user_list)
        request.setAttribute("ShowCount", ShowCount)
        response.contentType = "text/html; charset=utf-8"
        return "/WEB-INF/ftl/js_user.ftl"
Beispiel #3
0
class js_video:
    def execute(self):
        # 完整的调用参数:
        # js_video.py?top=4&count=4&type=0&cateid=13

        # 默认支持 subjectId,gradeId,参数带这些值,默认是支持的
        # 更多参数请参见 js_video。

        self.params = ParamUtil(request)
        ShowCount = self.params.getIntParam("count")
        ShowTop = self.params.getIntParam("top")
        unitId = self.params.getIntParamZeroAsNull("unitid")
        cateid = self.params.getIntParamZeroAsNull("cateid")
        if ShowTop == None or ShowTop == 0:
            ShowTop = 10
        if ShowCount == None or ShowCount == 0:
            ShowCount = 10
        qry = VideoQuery(" v.videoId, v.title, v.createDate ")
        qry.categoryId = cateid
        video_list = qry.query_map(ShowTop)

        request.setAttribute("video_list", video_list)
        request.setAttribute("ShowCount", ShowCount)
        response.contentType = "text/html; charset=utf-8"
        return "/WEB-INF/ftl/js_video.ftl"
class manage_createPrepareCourse_commoncourse(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.printer = response.getWriter()
        self.pc_svc = __jitar__.getPrepareCourseService()
        self.user_svc = __jitar__.getUserService()

    def execute(self):
        self.getBaseData()
        self.prepareCourseId = self.params.getIntParam("prepareCourseId")
        if self.prepareCourseId == 0:
            self.printer.println(u"无效的备课标识。")
            return

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

        if self.canManage(self.prepareCourse) == False:
            self.printer.println(u"您无权管理本备课。")
            return
        editId = self.params.getIntParam("editId")
        if editId != 0:
            prepareCourseEdit = self.pc_svc.getPrepareCourseEdit(editId)
            if prepareCourseEdit != None:
                self.prepareCourse.setPrepareCourseEditId(
                    prepareCourseEdit.prepareCourseEditId)
                self.prepareCourse.setCommonContent(prepareCourseEdit.content)
                self.pc_svc.updatePrepareCourse(self.prepareCourse)
                #清空缓存
                self.removePrepareCourseCache()
                response.sendRedirect(
                    "manage_createPrepareCourse_commoncourse.py?prepareCourseId="
                    + str(self.prepareCourseId))

        if request.getMethod() == "POST":
            cmd = self.params.safeGetStringParam("cmd")
            # print "cmd = ",cmd
            if cmd == "1":
                prepareCourseEditId = self.params.safeGetIntValues(
                    "prepareCourseEditId")
                for id in prepareCourseEditId:
                    if self.prepareCourse.prepareCourseEditId == id:
                        self.prepareCourse.setPrepareCourseEditId(0)
                        self.prepareCourse.setCommonContent("")
                        self.pc_svc.updatePrepareCourse(self.prepareCourse)
                        #清空缓存
                        self.removePrepareCourseCache()
                    self.pc_svc.deletePrepareCourseEdit(id)

        edit_list = self.pc_svc.getPrepareCourseEditList(
            self.prepareCourse.prepareCourseId)
        request.setAttribute("edit_list", edit_list)
        request.setAttribute("prepareCourse", self.prepareCourse)

        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/course/manage_createPrepareCourse_commoncourse.ftl"
Beispiel #5
0
    def execute(self):
        params = ParamUtil(request)
        cmt_svc = __jitar__.getCommentService()
        writer = response.getWriter()
        if self.loginUser == None:
            writer.write(u"请先登录。")
            return
        userName = self.loginUser.trueName
        if userName == None:
            userName = self.loginUser.loginName
        title = params.getStringParam("title")
        objtype = params.getIntParam("objtype")
        aboutUserId = params.getIntParam("aboutUserId")
        objId = params.getIntParam("photoId")
        star = params.getIntParam("star")
        content = params.getStringParam("content")
        userIP = request.getHeader("x-forwarded-for")
        if userIP == None or userIP == "":
            userIP = request.getRemoteAddr()

        if title == "":
            writer.write(u"请输入标题。")
            return
        if content == "" or content == "<span></span>":
            writer.write(u"请输入评论内容。")
            return

        cmt = Comment()
        cmt.setTitle(title)
        cmt.setAboutUserId(aboutUserId)
        cmt.setIp(userIP)
        cmt.setUserName(userName)
        cmt.setUserId(self.loginUser.userId)
        cmt.setCreateDate(Date())
        cmt.setStar(star)
        cmt.setAudit(True)
        cmt.setContent(content)
        cmt.setObjId(objId)
        cmt.setObjType(objtype)
        cmt_svc.saveComment(cmt)

        # 评论计数器
        cmd = Command(
            """ UPDATE Photo SET commentCount = commentCount + 1 WHERE photoId = :photoId """
        )
        cmd.setInteger("photoId", objId)
        cmd.update()

        photoUser = params.getStringParam("photoUser")
        if request.getHeader("Referer") != None:
            response.sendRedirect(request.getHeader("Referer"))
            return
        request.setAttribute(
            "redUrl",
            photoUser + "/py/user_photo_show.py?photoId=" + str(objId))
        return "/WEB-INF/ftl/photo/PhotoComment_Success.ftl"
class showPrepareCourseCommonContent(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.pc_svc = __jitar__.getPrepareCourseService()
        self.user_svc = __jitar__.getUserService()
        self.printer = MessagePrint()

    def execute(self):
        site_config = SiteConfig()
        site_config.get_config()

        self.prepareCourseId = self.params.getIntParam("prepareCourseId")
        self.prepareCourse = self.pc_svc.getPrepareCourse(self.prepareCourseId)

        if self.prepareCourse == None:
            self.printer.addMessage(u"未能加载备课。请重新选择一次备课。")
            return self.printer.printMessage(
                "manage/course/showPrepareCourse.py?prepareCourseId=" +
                str(self.prepareCourseId), "")

        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)
        if self.loginUser != None:
            request.setAttribute("loginUser", self.loginUser)
        request.setAttribute("prepareCourse", self.prepareCourse)
        request.setAttribute("head_nav", "cocourses")
        return "/WEB-INF/ftl/course/showPrepareCourseCommonContent.ftl"
Beispiel #7
0
    def execute(self):
        tag_svc = __jitar__.getTagService()
        param = ParamUtil(request)
        tagId = param.getIntParam("tagId")
        tagName = param.safeGetStringParam("tagName")
        if tagId != 0:
            self.tag = tag_svc.getTag(tagId)
        else:
            self.tag = tag_svc.getTagByName(tagName)
        #print "tagName = ",tagName
        if self.tag == None:
            actionErrors = [u"标签不存在。"]
            request.setAttribute("actionErrors", actionErrors)
            return "/WEB-INF/ftl/Error.ftl"

        tag_svc.incTagViewCount(self.tag, 1)
        request.setAttribute("tag", self.tag)
        request.setAttribute("head_nav", "tags")
        self.get_tag_article_list()
        self.get_tag_group_list()
        self.get_tag_preparecourse_list()
        self.get_tag_user_list()
        self.get_tag_resource_list()
        self.get_tag_photo_list()
        return "/WEB-INF/ftl/show_tag.ftl"
Beispiel #8
0
class showPhoto:
    def __init__(self):
        self.params = ParamUtil(request)
        self.photo_svc = __jitar__.photoService
        self.cate_svc = __jitar__.categoryService

    def execute(self):
        site_config = SiteConfig()
        site_config.get_config()

        photoId = self.params.getIntParam("photoId")

        photo = self.photo_svc.findById(photoId)
        request.setAttribute("photo", photo)
        #DEBUG print "photoId = ", photoId, ", photo = ", self.photo
        #print "===photo.sysCateId===:",photo.sysCateId
        if photo != None:
            if photo.sysCateId != None:
                category = self.cate_svc.getCategory(photo.sysCateId)
                request.setAttribute("category", category)
            # 更新访问计数
            cmd = Command(
                """ UPDATE Photo SET viewCount = viewCount + 1 WHERE photoId = :photoId """
            )
            cmd.setInteger("photoId", photo.photoId)
            cmd.update()

        return "/WEB-INF/ftl/showPhoto.ftl"
Beispiel #9
0
class showVideoList:
    def __init__(self):
        self.params = ParamUtil(request)
        self.categoryName = None
        self.type = "new"
        self.video_svc = __spring__.getBean("videoService")

    def execute(self):
        vid = self.params.getIntParam("vid")

        self.type = self.params.getStringParam("type")
        if self.type == None or self.type == "":
            self.type = "new"

        if (vid != None) and (vid != 0):
            video = self.video_svc.findById(vid)
            self.categoryName = video.staple
        else:
            self.categoryName = self.params.getStringParam("categoryName")

        request.setAttribute("categoryName", self.categoryName)
        request.setAttribute("categoryShowTitle", u"所有视频")
        if ((self.categoryName != None) and (self.categoryName != "")):
            request.setAttribute("categoryShowTitle",
                                 self.categoryName + u"分类下的所有视频")
        else:
            if self.type == "new":
                request.setAttribute("categoryShowTitle", u"最新视频")
            if self.type == "hot":
                request.setAttribute("categoryShowTitle", u"视频排行")

        request.setAttribute("type", type)

        self.get_video_with_pager()

        # 页面导航高亮为 'video'
        request.setAttribute("head_nav", "video")

        return "/WEB-INF/ftl/show_video_list.ftl"

    def get_video_with_pager(self):
        pager = self.params.createPager()
        pager.itemName = u"视频"
        pager.itemUnit = u"个"
        pager.pageSize = 24
        qry = VideoQuery(
            """ v.videoId, v.title, v.createDate, v.href, v.userId, u.loginName, u.nickName, v.summary,v.flvThumbNailHref """
        )
        if ((self.categoryName != None) and (self.categoryName != "")):
            qry.sysCateTitle = self.categoryName
        if self.type == "new":
            qry.orderType = 1
        elif self.type == "hot":
            qry.orderType = 2
        else:
            qry.orderType = 0
        pager.totalRows = qry.count()
        video_list = qry.query_map(pager)
        request.setAttribute("video_list", video_list)
        request.setAttribute("pager", pager)
Beispiel #10
0
class searchUser0:  
  cfg_svc = __jitar__.configService

  def __init__(self):
    self.params = ParamUtil(request)  
    return

  def execute(self):
    self.config = self.cfg_svc.getConfigure()
      
    # 用户
    self.userList()
    
    # 机构列表.
    self.get_units_list()

    singleuser = self.params.getIntParam("singleuser")  #1 用户单选 2 用户多选
    if singleuser == None:
      singleuser = 1
      
    inputUser_Id = self.params.getStringParam("inputUser_Id")
    inputUserName_Id = self.params.getStringParam("inputUserName_Id")
    inputLoginName_Id = self.params.getStringParam("inputLoginName_Id")
    request.setAttribute("singleuser", singleuser)
    request.setAttribute("inputUser_Id", inputUser_Id)
    request.setAttribute("inputUserName_Id", inputUserName_Id)
    request.setAttribute("inputLoginName_Id", inputLoginName_Id)
    # 返回
    response.contentType = "text/html; charset=UTF-8"
    return "/WEB-INF/ftl/searchUserList0.ftl"

  def userList(self):
    unitId = self.params.getIntParamZeroAsNull("unitId")
    userName = self.params.getStringParam("userName")
    qry = UserQuery2(" u.userId, u.loginName, u.userIcon, u.gender, u.blogName, u.trueName, u.unitId,  unit.unitName, unit.unitTitle ")
    qry.userStatus = 0
    qry.kk = userName
    pager = self.createPager()
    pager.totalRows = qry.count()
    user_list = qry.query_map(pager) 
    request.setAttribute("unitId", unitId)
    request.setAttribute("user_list", user_list)
    request.setAttribute("userName", userName)
    request.setAttribute("pager", pager)

  # 机构列表.
  def get_units_list(self):
    hql = """SELECT new Map(ut.unitId as unitId, ut.unitTitle as unitTitle) 
         FROM Unit ut 
         ORDER BY ut.unitName """     
    unit_list = Command(hql).open()
    request.setAttribute("unit_list", unit_list)

  def createPager(self):
    # private 构造人员的缺省 pager.
    pager = self.params.createPager()
    pager.itemName = u"用户"
    pager.itemUnit = u"个"
    pager.pageSize = 10
    return pager
Beispiel #11
0
class addGroupTopic(ActionExecutor, ShowGroupBase, RequestMixiner,
                    ResponseMixiner, PageCheckMixiner):
    def __init__(self):
        self.params = ParamUtil(request)
        self.group_svc = __jitar__.groupService
        self.bbs_svc = __jitar__.bbsService

    def execute(self):
        groupId = self.params.getIntParam("groupId")
        if groupId == None or groupId == 0:
            return self.notFound()

        group = self.group_svc.getGroup(groupId)
        if group == None:
            return self.notFound()

        if self.loginUser == None:
            isMember = None
        else:
            isMember = self.group_svc.getGroupMemberByGroupIdAndUserId(
                group.groupId, self.loginUser.userId)
        self.getGroupInfo(group.groupName)

        page = self.getGroupIndexPage(group)
        page = {
            "pageId": 0,
            "layoutId": 8,  # 固定是布局
            "isSystemPage": "true",
            "owner": "user",
            "title": "",
            "skin": page.skin
        }
        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")

        topic = Topic()
        topic.setTitle("")
        topic.setContent("")
        topic.setGroupId(group.groupId)
        topic.setTags("")

        request.setAttribute("page", page)
        request.setAttribute("group", group)
        request.setAttribute("loginUser", self.loginUser)
        request.setAttribute("isMember", isMember)
        request.setAttribute("redirect", "True")
        request.setAttribute("topic", topic)

        response.contentType = "text/html; charset=UTF-8"
        return "/WEB-INF/group/default/show_add_group_topic.ftl"
Beispiel #12
0
class manage_createPrepareCourse_common_comment(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.printer = response.getWriter()        
        self.pc_svc = __jitar__.getPrepareCourseService()
        self.user_svc = __jitar__.getUserService()
        self.commentService = __jitar__.getCommentService()
        
    def execute(self):
        if self.loginUser == None:            
            self.printer.write(u"请先<a href='../../login.jsp'>登录</a>,然后才能进行管理")
            return
        
        self.getBaseData()
        self.prepareCourseId = self.params.getIntParam("prepareCourseId")
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的备课标识。")
            return
    
        self.prepareCourse = self.pc_svc.getPrepareCourse(self.prepareCourseId)
        if self.prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        
        if self.canManage(self.prepareCourse) == False:
            self.printer.write(u"您无权管理本备课。")
            return
        
        if request.getMethod() == "POST":
            self.deleteComment()
            
        self.getCommentList()        
        request.setAttribute("loginUser", self.loginUser)
        request.setAttribute("prepareCourse", self.prepareCourse)
        return "/WEB-INF/ftl/course/manage_createPrepareCourse_common_comment.ftl"

    def getCommentList(self):
        qry = CommentQuery("cmt.id,cmt.userId,cmt.content,cmt.createDate,cmt.userName")
        qry.objType = ObjectType.OBJECT_TYPE_PREPARECOURSE.getTypeId()
        qry.objId = self.prepareCourseId        
        qry.audit = 1
        pager = self.params.createPager()
        pager.itemName = u"评论"
        pager.itemUnit = u"条"
        pager.pageSize = 20
        pager.totalRows = qry.count()
        comment_list = qry.query_map(pager)
        request.setAttribute("comment_list", comment_list)
        request.setAttribute("pager", pager)
        
    def deleteComment(self):
        commentsId = self.params.safeGetIntValues("commentId")
        for id in commentsId:
            refComment = self.commentService.getComment(id)
            if refComment != None:
                self.commentService.deleteComment(refComment)
Beispiel #13
0
class manage_leader(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.printer = response.getWriter()
        self.pc_svc = __jitar__.getPrepareCourseService()
        self.user_svc = __jitar__.getUserService()

    def execute(self):
        self.getBaseData()
        self.prepareCourseId = self.params.getIntParam("prepareCourseId")
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的备课标识。")
            return

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

        if self.canManage(self.prepareCourse) == False:
            self.printer.write(u"您无权管理本备课。")
            return

        cmd = self.params.safeGetStringParam("cmd")
        leaderId = self.params.getIntParam("leaderId")
        if self.pc_svc.checkUserInPreCourse(self.prepareCourseId,
                                            leaderId) == False:
            self.printer.write(u"你选择的用户不属于备课:" + self.prepareCourse.getTitle())
            return

        if cmd == "add":
            self.prepareCourse.setLeaderId(leaderId)
            self.pc_svc.updatePrepareCourse(self.prepareCourse)
        if cmd == "delete":
            self.prepareCourse.setLeaderId(self.prepareCourse.createUserId)
            self.pc_svc.updatePrepareCourse(self.prepareCourse)

        response.sendRedirect(
            "manage_createPrepareCourse_member.py?prepareCourseId=" +
            str(self.prepareCourseId))
Beispiel #14
0
class show_bulletin(ChannelPage):
    def __init__(self):
        ChannelPage.__init__(self)
        self.params = ParamUtil(request)
        self.channelPageService = __spring__.getBean("channelPageService")
        self.templateProcessor = __spring__.getBean("templateProcessor")
        self.channel = None

    def execute(self):
        channelId = self.params.safeGetIntParam("channelId")
        if channelId == 0:
            self.addActionError(u"您所访问的页面不存在!")
            return ActionResult.ACCESS_ERROR
        self.channel = self.channelPageService.getChannel(channelId)
        if self.channel == None:
            self.addActionError(u"无法加载指定的页面!")
            return ActionResult.ACCESS_ERROR
        map = HashMap()
        map.put("channel", self.channel)
        map.put("head_nav", "video")

        if self.channel.skin == None:
            skin = "template1"
        elif self.channel.skin == "":
            skin = "template1"
        else:
            skin = self.channel.skin

        # 输出页头
        headerContent = self.GenerateContentFromTemplateString(
            self.channel.headerTemplate)
        footerContent = self.GenerateContentFromTemplateString(
            self.channel.footerTemplate)
        # 输出主体部分:
        placardId = self.params.getIntParam("placardId")
        if placardId == None or placardId == "":
            mainContent = ""
        else:
            placardService = __jitar__.getPlacardService()
            placard = placardService.getPlacard(placardId)
            map.put("placard", placard)
            mainContent = self.templateProcessor.processTemplate(
                map, "/WEB-INF/channel/" + skin + "/show_bulletin.ftl",
                "utf-8")
        out = response.getWriter()
        if headerContent == "" and footerContent == "" and mainContent == "":
            out.println(u"该频道没有指定模板,无法显示页面内容。")
            return

        out.println(headerContent)
        out.println(mainContent)
        out.println(footerContent)
Beispiel #15
0
    def execute(self):
        param = ParamUtil(request)
        placardId = param.getIntParam("placardId")
        if placardId == None or placardId == "":
            return
        self.pla_svc = __jitar__.getPlacardService()
        placard = self.pla_svc.getPlacard(placardId)

        if placard == None:
            return
        request.setAttribute("placard", placard)
        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/show_placard.ftl"
class manage_createPrepareCourse_private_comment(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.printer = response.getWriter()        
        self.pc_svc = __jitar__.getPrepareCourseService()
        self.user_svc = __jitar__.getUserService()
        
    def execute(self):
        if self.loginUser == None:            
            self.printer.write(u"请先<a href='../../login.jsp'>登录</a>,然后才能进行管理")
            return
        
        self.getBaseData()
        self.prepareCourseId = self.params.getIntParam("prepareCourseId")
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的备课标识。")
            return
    
        self.prepareCourse = self.pc_svc.getPrepareCourse(self.prepareCourseId)
        if self.prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        
        if self.canManage(self.prepareCourse) == False:
            self.printer.write(u"您无权管理本备课。")
            return
        
        if request.getMethod() == "POST":
            self.deleteComment()
            
        self.getPrepareCoursePrivateCommentList()        
        request.setAttribute("loginUser", self.loginUser)
        request.setAttribute("prepareCourse", self.prepareCourse)
        return "/WEB-INF/ftl/course/manage_createPrepareCourse_private_comment.ftl"

    def getPrepareCoursePrivateCommentList(self):
        pager = self.params.createPager()
        pager.itemName = u"评论"
        pager.itemUnit = u"条"
        qry = PrepareCoursePrivateCommentQuery(""" pcpc.prepareCoursePrivateCommentId,pcpc.title,pcpc.content,pcpc.createDate,pcpc.commentUserId,pcpc.commentedUserId """)
        qry.prepareCourseId = self.prepareCourseId
        pager.totalRows = qry.count()
        comment_list = qry.query_map(pager)
        request.setAttribute("pager",pager)
        request.setAttribute("comment_list",comment_list)
        return
    
    def deleteComment(self):
        guid = self.params.safeGetIntValues("prepareCoursePrivateCommentId")
        for id in guid:
            self.pc_svc.deletePrepareCoursePrivateComment(id)
class manage_createPrepareCourse_reply(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.printer = response.getWriter()
        self.pc_svc = __jitar__.getPrepareCourseService()
        self.user_svc = __jitar__.getUserService()

    def execute(self):
        self.getBaseData()
        self.prepareCourseId = self.params.getIntParam("prepareCourseId")
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的备课标识。")
            return

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

        if self.canManage(self.prepareCourse) == False:
            self.printer.write(u"您无权管理本备课。")
            return

        if request.getMethod() == "POST":
            cmd = self.params.safeGetStringParam("cmd")
            if cmd == "delete":
                prepareCourseTopicReplyId = self.params.safeGetIntValues(
                    "prepareCourseTopicReplyId")
                for id in prepareCourseTopicReplyId:
                    self.pc_svc.deletePrepareCourseTopicReply(
                        self.prepareCourseId, id)

        pager = self.params.createPager()
        pager.itemName = u"回复"
        pager.itemUnit = u"个"
        qry = PrepareTopicReplyQuery(
            """ pctr.prepareCourseTopicReplyId, pctr.prepareCourseTopicId, pctr.prepareCourseStageId, pctr.title, pctr.createDate, pctr.userId,
                                    pctr.content,pct.title as pctTitle
                                    """)

        qry.prepareCourseId = self.prepareCourse.prepareCourseId
        pager.totalRows = qry.count()
        reply_list = qry.query_map(pager)

        request.setAttribute("pager", pager)
        request.setAttribute("reply_list", reply_list)
        request.setAttribute("prepareCourse", self.prepareCourse)

        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/course/manage_createPrepareCourse_reply.ftl"
class manage_createPrepareCourse_action(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.printer = response.getWriter()
        self.pc_svc = __jitar__.getPrepareCourseService()
        self.act_svc = __jitar__.getActionService()

    def execute(self):
        self.getBaseData()
        self.prepareCourseId = self.params.getIntParam("prepareCourseId")
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的备课标识。")
            return

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

        if self.canManage(prepareCourse) == False:
            self.printer.write(u"您无权管理本备课。")
            return

        if request.getMethod() == "POST":
            cmd = self.params.safeGetIntParam("cmdtype")
            guid = self.params.safeGetIntValues("guid")
            for actionId in guid:
                self.act_svc.updateActionStatus(cmd, int(actionId))

        pager = self.params.createPager()
        pager.itemName = u"活动"
        pager.itemUnit = u"个"
        qry = ActionQuery(
            """ act.title, act.createDate, act.actionId, act.ownerId, act.ownerType, act.createUserId, act.actionType,
                              act.description, act.userLimit, act.startDateTime,act.finishDateTime, act.attendLimitDateTime, act.place,
                              act.status, act.visibility, act.attendCount,u.trueName,u.loginName
                            """)
        qry.k = None  #防止右边查询冲突
        qry.ownerType = "preparecourse"
        qry.ownerId = prepareCourse.prepareCourseId
        pager.totalRows = qry.count()
        action_list = qry.query_map(pager)

        request.setAttribute("pager", pager)
        request.setAttribute("action_list", action_list)
        request.setAttribute("prepareCourse", prepareCourse)

        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/course/manage_createPrepareCourse_action.ftl"
Beispiel #19
0
class js_group:
    def execute(self):
        # 完整的调用参数:
        # js_group.py?top=10&type=0&cateid=49
        self.params = ParamUtil(request)
        ShowTop = self.params.getIntParam("top")
        ShowType = self.params.getIntParam("type")
        cateid = self.params.getIntParamZeroAsNull("cateid")
        if ShowTop == None or ShowTop == 0:
            ShowTop = 10
        if ShowType == None:
            ShowType = 0

        qry = GroupQuery(" g.groupName,g.groupTitle ")
        qry.categoryId = cateid
        if ShowType == 1:
            qry.isRecommend = True
        elif ShowType == 2:
            qry.isBestGroup = True

        group_list = qry.query_map(ShowTop)
        request.setAttribute("group_list", group_list)
        response.contentType = "text/html; charset=utf-8"
        return "/WEB-INF/ftl/js_group.ftl"
class evaluationFieldsContent(ActionExecutor, SubjectMixiner):
    def __init__(self):
        self.params = ParamUtil(request)
        self.video_svc = __spring__.getBean("videoService")
        self.res_svc = __spring__.getBean("resourceService")
        self.evaluationService = __spring__.getBean("evaluationService")
        self.finish=0
        
    def execute(self):
        templateId = self.params.getIntParam("templateId")
        if templateId>0:
            field_list=self.evaluationService.getEvaluationTemplateFields(templateId)
            request.setAttribute("field_list", field_list)
            return "/WEB-INF/ftl/evaluation/fieldcontent.ftl"
            
                
Beispiel #21
0
class showGroupTopic(ActionExecutor, ShowGroupBase, RequestMixiner, ResponseMixiner, PageCheckMixiner):
    def __init__(self):                
        self.params = ParamUtil(request)
        self.group_svc = __jitar__.groupService 
        self.bbs_svc = __jitar__.bbsService 
        
    def execute(self):
        groupId =  self.params.getIntParam("groupId")
        topicId =  self.params.getIntParam("topicId")
        if groupId == None or groupId == 0:
            return self.notFound()
        
        group = self.group_svc.getGroup(groupId)
        if group == None:
            return self.notFound()
        
        if self.loginUser == None:
            isMember = None
        else:
            isMember = self.group_svc.getGroupMemberByGroupIdAndUserId(group.groupId, self.loginUser.userId)
        self.getGroupInfo(group.groupName)
        page = self.getGroupIndexPage(group)
        page = {
                "pageId":0,
                "layoutId":8, # 固定是布局
                "isSystemPage" : "true", 
                "owner" : "user", 
                "title" :"",
                "skin":page.skin
                }
        
        pager = self.params.createPager()
        pager.setPageSize(10)
        pager.itemName = u"回复"
        pager.itemUnit = u"条"
        topic = self.bbs_svc.getTopicById(topicId);
        reply_list = self.bbs_svc.getReplyDataTable(topicId, pager)
        request.setAttribute("page", page)
        request.setAttribute("group", group)
        request.setAttribute("topic", topic)
        request.setAttribute("pager", pager)
        request.setAttribute("reply_list", reply_list)
        request.setAttribute("loginUser", self.loginUser)
        request.setAttribute("isMember", isMember)
        
        response.contentType = "text/html; charset=UTF-8"
        return "/WEB-INF/group/default/show_group_topic.ftl"
class manage_relatedPrepareCourse(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.printer = response.getWriter()
        self.pc_svc = __jitar__.getPrepareCourseService()

    def execute(self):
        self.getBaseData()
        self.prepareCourseId = self.params.getIntParam("prepareCourseId")
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的备课标识。")
            return

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

        if self.canManage(prepareCourse) == False:
            self.printer.write(u"您无权管理本备课。")
            return

        if request.getMethod() == "POST":
            cmd = self.params.safeGetStringParam("cmd")
            if cmd == "delete":
                prepareCourseTopicIds = self.params.safeGetIntValues("guid")
                for id in prepareCourseTopicIds:
                    self.pc_svc.removeRelatedPrepareCourse(
                        self.prepareCourseId, id)

        pager = self.params.createPager()
        pager.itemName = u"备课"
        pager.itemUnit = u"个"
        qry = PrepareRelatedQuery(
            """ pc.createUserId,pc.leaderId,pc.memberCount,pc.articleCount,pc.resourceCount,
                                    pc.status,pc.actionCount,pc.topicCount,pc.topicReplyCount,pc.viewCount,pc.startDate,pc.endDate,
                                    pc.title, pc.prepareCourseId, pc.createDate, pc.metaSubjectId, pc.gradeId,pc.recommendState
                                     """)
        qry.prepareCourseId = prepareCourse.prepareCourseId
        pager.totalRows = qry.count()
        course_list = qry.query_map(pager)

        request.setAttribute("pager", pager)
        request.setAttribute("preparecourse_list", course_list)
        request.setAttribute("prepareCourse", prepareCourse)
        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/course/manage_relatedPrepareCourse.ftl"
Beispiel #23
0
    def execute(self):
        param = ParamUtil(request)
        type = param.getRequestParam("cmd")
        articleId = param.getIntParam("id")
        out = response.writer
        articleService = __jitar__.articleService
        if type == "digg":
            articleService.addDigg(articleId)
            out.write(str(articleService.getDigg(articleId)))
            return

        elif type == "trample":
            articleService.addTrample(articleId)
            out.write(str(articleService.getTrample(articleId)))
            return
        else:
            out.write(0)
Beispiel #24
0
class showCommentSummary:        
    def __init__(self):                
        self.params = ParamUtil(request)
        self.video_svc =__spring__.getBean("videoService")
        
    def execute(self):
        site_config = SiteConfig()
        site_config.get_config()        
        summary =""
        vid= self.params.getIntParam("id")
        if (vid!=None) and (vid!=0):
            video=self.video_svc.findById(vid)
            summary=video.getSummary()
        else:    
            return "";
        
        request.setAttribute("videoId",vid)
        request.setAttribute("summary",summary)
        return "/WEB-INF/ftl/video/show_video_summary.ftl"
Beispiel #25
0
    def execute(self):
        site_config = SiteConfig()
        site_config.get_config()

        param = ParamUtil(request)
        newsId = param.getIntParam("newsId")
        if newsId == None or newsId == "":
            return
        self.sub_svc = __jitar__.getSubjectService()

        news = self.sub_svc.getSiteNews(newsId)
        if news == None:
            return
        sql = """ Update SiteNews Set viewCount = viewCount + 1 Where newsId = :newsId """
        cmd = Command(sql)
        cmd.setInteger("newsId", newsId)
        cmd.update()
        request.setAttribute("news", news)
        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/show_news.ftl"
Beispiel #26
0
class photo_show_state(ActionExecutor):
    def __init__(self):
        self.params = ParamUtil(request)
        self.p_svc = __spring__.getBean("photoService")
        self.login_user = self.getLoginUser()
        self.writer = response.getWriter()

    def execute(self):
        if self.login_user == None:
            self.writer.write(u"请先登录。")
            return
        photoId = self.params.getIntParam("photoId")
        show = self.params.safeGetStringParam("show")
        photo = self.p_svc.findById(photoId)
        if photo == None:
            self.writer.write(u"没有找到相应的照片。")
            return
        if show == "true":
            photo.setIsPrivateShow(True)
        else:
            photo.setIsPrivateShow(False)
        self.p_svc.updatePhoto(photo)
        #更新频道图片状态
        channelPageService = __spring__.getBean("channelPageService")
        channelPhotoList = channelPageService.getChannelPhotoList(
            photo.photoId)
        if channelPhotoList != None and len(channelPhotoList) > 0:
            for cp in channelPhotoList:
                cp.title = photo.title
                cp.showState = (photo.delState == False
                                and photo.auditState == 0
                                and photo.getIsPrivateShow() == False)
                channelPageService.saveOrUpdateChannelPhoto(cp)

        self.writer.write("200 OK")
        return
class group_video_category(ActionExecutor, CategoryMixiner):
    def __init__(self):
        ActionExecutor.__init__(self)
        self.params = ParamUtil(request)

    # execute() 由 ActionExecutor 实现, 我们只需要实现 dispatcher 即可.
    def dispatcher(self, cmd):
        if self.loginUser == None:
            return ActionResult.LOGIN

        # 得到当前协作组.
        if self.getCurrentGroup() == False:
            return ActionResult.ERROR

        # 计算协作组视频分类 itemType.
        self.itemType = self.toGroupVideoCategoryItemType(self.group)

        uuid = group_svc.getGroupCateUuid(self.group)
        if uuid == CategoryService.GROUP_CATEGORY_GUID_KTYJ:
            request.setAttribute("isKtGroup", "1")
        else:
            request.setAttribute("isKtGroup", "0")

        if cmd == None or cmd == '': cmd = 'list'
        if cmd == 'list':
            return self.list()
        elif cmd == 'add':
            return self.add()
        elif cmd == 'edit':
            return self.edit()
        elif cmd == 'save':
            return self.save()
        elif cmd == 'delete':
            return self.delete()

        self.addActionError("未知命令 : " + cmd)
        return ActionResult.ERROR

    # 列出视频分类列表.
    def list(self):
        #if self.getParentCategory() == False:
        #  return ActionResult.ERROR

        self.category_tree = cate_svc.getCategoryTree(self.itemType)
        # print "self.category_tree = ", self.category_tree
        request.setAttribute("category_tree", self.category_tree)

        return "/WEB-INF/ftl/group/group_cate_video_list.ftl"

    # 添加一个分类.
    def add(self):
        if self.getParentCategory() == False:
            return ActionResult.ERROR

        # 得到整个分类树.
        category_tree = cate_svc.getCategoryTree(self.itemType)
        request.setAttribute("category_tree", category_tree)

        # 构造一个新分类.
        category = Category()
        category.itemType = self.itemType
        category.parentId = self.parentId
        request.setAttribute("category", category)

        return "/WEB-INF/ftl/group/group_cate_video_add.ftl"

    # 编辑修改/移动一个分类.
    def edit(self):
        # 得到要编辑的分类对象.
        if self.getCurrentCategory() == False:
            return ActionResult.ERROR
        request.setAttribute("category", self.category)

        # 得到整个分类树.
        category_tree = cate_svc.getCategoryTree(self.itemType)
        request.setAttribute("category_tree", category_tree)

        return "/WEB-INF/ftl/group/group_cate_video_add.ftl"

    # 新建/保存一个分类.
    def save(self):
        # 获得和验证父分类参数.
        if self.getParentCategory() == False:
            return ActionResult.ERROR

        #print "self.params = ", self.params
        # 从提交数据中组装出 category 对象.
        category = Category()
        category.categoryId = self.params.getIntParam("categoryId")
        category.name = self.params.getStringParam("name")
        category.itemType = self.itemType
        category.parentId = self.parentId
        category.description = self.params.getStringParam("description")

        # 简单验证.
        if category.name == None or category.name == "":
            self.addActionError(u"未填写分类名字.")
            return ActionResult.ERROR

        if category.categoryId == 0:
            # 创建该分类.
            cate_svc.createCategory(category)
            self.addActionMessage(u"分类 " + category.name + u" 创建成功.")
        else:
            # 更新/移动分类.
            cate_svc.updateCategory(category)
            self.addActionMessage(u"分类 " + category.name + u" 修改/移动操作成功完成.")

        link = "?cmd=list&amp;groupId=" + str(self.group.groupId)
        self.addActionLink(u"返回", link)
        return ActionResult.SUCCESS

    # 删除所选分类.
    def delete(self):
        # 得到要删除的分类对象.
        if self.getCurrentCategory() == False:
            return ActionResult.ERROR

        # 验证其是否有子分类, 有子分类的必须要先删除子分类才能删除分类.
        if self.hasChildCategories(self.category):
            self.addActionError(u"分类 " + self.category.name +
                                u" 有子分类, 必须先删除其所有子分类才能删除该分类.")
            return ActionResult.ERROR

        # 设置 GroupResource.groupCateId 都为 null.
        # 这里现在没有放在事务里面执行.
        self.updateGroupCategoryId(self.category)

        # 执行业务.
        cate_svc.deleteCategory(self.category)

        self.addActionMessage(u"分类 " + self.category.name + u" 已经成功删除.")
        return ActionResult.SUCCESS

    # 得到当前协作组, 协作组标识由页面传递过来.
    # 返回 True 表示有协作组, False 表示没有.
    def getCurrentGroup(self):
        # 得到协作组参数.
        groupId = self.params.getIntParam('groupId')
        if groupId == 0:
            self.addActionError(u"未给出要管理的协作组标识, 请确定您是从有效的链接进入的.")
            return False

        # 得到协作组.
        self.group = group_svc.getGroupMayCached(groupId)
        if self.group == None:
            self.addActionError(u"未找到指定标识为 %d 的协作组, 请确定您是从有效的链接进入的." % groupId)
            return False
        request.setAttribute("group", self.group)

        # TODO: 验证协作组状态.

        # TODO: 得到当前登录用户在协作组的身份.

        return True

    # 得到当前要操作的分类对象, 并验证其存在, 以及 itemType 匹配.
    # 返回 False 表示失败; True 表示成功.
    # 如果返回 True 则 self.category 中存放着拿出来的分类对象.
    def getCurrentCategory(self):
        categoryId = self.params.getIntParam("categoryId")
        if categoryId == 0:
            self.addActionError(u"未给出要操作的分类.")
            return False

        category = cate_svc.getCategory(categoryId)
        if category == None:
            self.addActionError(u"未找到指定标识为 " + str(categoryId) + u" 的分类.")
            return False

        # 验证分类类型必须匹配.
        if category.itemType != self.itemType:
            self.addActionError(u"不匹配的分类类型.")
            return False

        self.category = category
        return True

    # 得到父分类标识参数及父分类对象, 并进行 itemType 验证.
    def getParentCategory(self):
        self.parentId = self.params.getIntParamZeroAsNull("parentId")
        request.setAttribute("parentId", self.parentId)
        if self.parentId == None:  # 认为是根分类.
            return True

        self.parentCategory = cate_svc.getCategory(self.parentId)
        request.setAttribute("parentCategory", self.parentCategory)
        # print "parentCategory = ", self.parentCategory
        if self.parentCategory == None:
            self.addActionError(u"未能找到指定标识的父分类, 请确定您是从有效的链接点击进入的.")
            return False
        if self.parentCategory.itemType != self.itemType:
            self.addActionError(u"不匹配的父分类类型: " + self.parentCategory.itemType)
            return False
        return True

    # 判断指定的分类是否具有子分类.
    def hasChildCategories(self, category):
        childCount = cate_svc.getChildrenCount(category.categoryId)
        return childCount > 0

    # 设置 GroupResource.groupCateId == category.categoryId 都为 null
    def updateGroupCategoryId(self, category):
        cmd = Command(""" UPDATE GroupVideo SET groupCateId = NULL
            WHERE groupId = :groupId AND groupCateId = :groupCateId """)
        cmd.setInteger("groupId", self.group.groupId)
        cmd.setInteger("groupCateId", category.categoryId)
        count = cmd.update()
Beispiel #28
0
class group_ktusers(ActionExecutor,SubjectMixiner):
  def __init__(self):
    ActionExecutor.__init__(self)
    self.params = ParamUtil(request)
    
  # execute() 由 ActionExecutor 实现, 我们只需要实现 dispatcher 即可.
  def dispatcher(self, cmd):
    if self.loginUser == None:
      return ActionResult.LOGIN
    
    # 得到当前课题组.
    if self.getCurrentGroup() == False:
      return ActionResult.ERROR
    
    request.setAttribute("isKtGroup", "1")
    
    self.get_subject_list()
    # 学段分类.
    self.get_grade_list()
        
    if cmd == None or cmd == '': cmd = 'list'
    if cmd == 'list':
      return self.list()
    elif cmd == 'savektuser':
      return self.savektuser()
    elif cmd == 'delete':
      return self.delete()
    elif cmd == 'delete_ktuser':
      return self.deletektuser()
    elif cmd == 'edit_ktuser':
      return self.editktuser()
    elif cmd == 'save':
      return self.savektuserinfo()
    
    self.addActionError(u"未知命令 : " + cmd)
    return ActionResult.ERROR
  
  # 学科列表.
  def get_subject_list(self):
   self.putSubjectList()

  #学段
  def get_grade_list(self):
    self.putGradeList() 
      
  # 列出资源分类列表.
  def list(self):
    #print "ktuser_svc="+str(ktuser_svc)
    ktUserlist= ktuser_svc.GetGroupKTUsers(self.group.groupId);
    request.setAttribute("ktUserlist", ktUserlist)
    return "/WEB-INF/ftl/group/group_ktuser_list.ftl"
  
  def savektuserinfo(self):
    id = self.params.getIntParam('id')
    if id == 0:
      self.addActionError(u"缺少课题负责人id.")
      return ActionResult.ERROR
    ktuser=ktuser_svc.GetGroupKTUser(id)
    if ktuser==None:
      self.addActionError(u"没有找到课题负责人.")
      return ActionResult.ERROR
    ktuser.teacherXZZW=self.params.getStringParam('teacherXZZW')
    ktuser.teacherZYZW=self.params.getStringParam('teacherZYZW')
    ktuser.teacherXL=self.params.getStringParam('teacherXL')
    ktuser.teacherXW=self.params.getStringParam('teacherXW')
    ktuser.teacherYJZC=self.params.getStringParam('teacherYJZC')
    ktuser_svc.UpdateGroupKTUser(ktuser)
    return self.list();

  def deletektuser(self):
    id = self.params.getIntParam('id')
    if id == 0:
      self.addActionError(u"请选择要删除的课题负责人.")
      return ActionResult.ERROR
    ktuser_svc.DeleteGroupKTUser(id);
    return self.list();
    
  def editktuser(self):
    #修改课题负责人
    id = self.params.getIntParam("id");
    if id == 0:
      self.addActionError(u"请选择要修改的课题负责人.")
      return ActionResult.ERROR
    print "id="+str(id)
    ktuser=ktuser_svc.GetGroupKTUser(id)
    request.setAttribute("ktuser", ktuser)
    return "/WEB-INF/ftl/group/group_ktuser_edit.ftl"
    
    
  def delete(self):
    # 得到要删除的对象.
    ids = self.params.safeGetIntValues("ktuId");
    if ids == None or ids.size() == 0:
      self.addActionError(u"没有选择要删除的负责人")
      return ActionResult.ERROR;
    #aid=ids.split(',')
    for id in ids:
      ktuser_svc.DeleteGroupKTUser(int(id));
    #self.addActionMessage(u"课题负责人已经成功删除.")
    #return ActionResult.SUCCESS
    return self.list();
  
  # 得到当前课题组, 课题组标识由页面传递过来.
  # 返回 True 表示有课题组, False 表示没有.
  def getCurrentGroup(self):
    # 得到课题组参数.
    groupId = self.params.getIntParam('groupId')
    if groupId == 0:
      self.addActionError(u"未给出要管理的课题组标识, 请确定您是从有效的链接进入的.")
      return False
    
    # 得到课题组.
    self.group = group_svc.getGroupMayCached(groupId)
    if self.group == None:
      self.addActionError(u"未找到指定标识为 %d 的课题组, 请确定您是从有效的链接进入的." % groupId)
      return False
    request.setAttribute("group", self.group)
    
    # TODO: 验证课题组状态.
    
    # TODO: 得到当前登录用户在课题组的身份.
    
    
    return True
  
  # 设置 GroupResource.groupCateId == category.categoryId 都为 null
  def updateGroupResourceCategoryId(self, category):
    cmd = Command(""" UPDATE GroupResource SET groupCateId = NULL
        WHERE groupId = :groupId AND groupCateId = :groupCateId """)
    cmd.setInteger("groupId", self.group.groupId)
    cmd.setInteger("groupCateId", category.categoryId)
    count = cmd.update()
    
Beispiel #29
0
class manage_createPrepareCourse_video(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.printer = response.getWriter()
        self.pc_svc = __jitar__.getPrepareCourseService()
        self.user_svc = __jitar__.getUserService()
        self.pun_svc = __jitar__.UPunishScoreService
        self.msg_svc = __spring__.getBean("messageService")
        self.videoService = __spring__.getBean("videoService")
        self.group = None

    def execute(self):
        self.getBaseData()
        self.prepareCourseId = self.params.getIntParam("prepareCourseId")
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的备课标识。")
            return

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

        if self.canManage(self.prepareCourse) == False:
            self.printer.write(u"您无权管理本备课。")
            return

        self.group = self.pc_svc.getGroupOfPrepareCourse(
            self.prepareCourse.prepareCourseId)
        if self.group == None:
            self.printer.write(u"集备必须是在协作组之内。")
            return

        if request.getMethod() == "POST":
            cmd = self.params.safeGetStringParam("cmd")
            if cmd == "1":
                self.delete_precarecoursevideo()
            elif cmd == "addscore":
                #加分
                score = self.params.safeGetIntParam("add_score")
                if score > 0:
                    #注意:加分是正的,保存是负的
                    score = score * -1
                #print "score="+str(score)
                score_reason = self.params.safeGetStringParam(
                    "add_score_reason")
                vId = self.params.safeGetIntValues("vId")
                for id in vId:
                    video = self.videoService.findById(id)
                    if video != None:
                        upun = self.pun_svc.createUPunishScore(
                            ObjectType.OBJECT_TYPE_VIDEO.getTypeId(), video.id,
                            video.userId, float(score), score_reason,
                            self.loginUser.userId, self.loginUser.trueName)
                        self.pun_svc.saveUPunishScore(upun)

            elif cmd == "minusscore":
                #罚分 发消息
                score = self.params.safeGetIntParam("minus_score")
                #print "score="+str(score)
                if score < 0:
                    #注意:罚分是负的,保存是正的
                    score = score * -1
                score_reason = self.params.safeGetStringParam(
                    "minus_score_reason")
                vId = self.params.safeGetIntValues("vId")
                for id in vId:
                    video = self.videoService.findById(id)
                    self.pc_svc.removePrepareCourseVideo(
                        self.prepareCourseId, id)
                    if video != None:
                        title = video.title
                        upun = self.pun_svc.createUPunishScore(
                            ObjectType.OBJECT_TYPE_VIDEO.getTypeId(), video.id,
                            video.userId, float(score), score_reason,
                            self.loginUser.userId, self.loginUser.trueName)
                        self.pun_svc.saveUPunishScore(upun)

                        #发送消息:管理员删除了您的文章/资源/视频及扣分信息,内容为您的 ***(内容标题) 被删除,罚*分,原因:***。
                        message = Message()
                        message.sendId = self.loginUser.userId
                        message.receiveId = video.userId
                        message.title = u"管理员从集备中移除了您的视频及扣分信息"
                        if score_reason != "":
                            message.content = u"您的视频" + title + u"因为:" + score_reason + u" 原因,从 " + self.prepareCourse.title + u" 中移除,并罚分" + str(
                                score) + u"分"
                        else:
                            message.content = u"您的视频 " + title + u" 从 " + self.prepareCourse.title + u" 中移除,并罚分" + str(
                                score) + u"分"
                        self.msg_svc.sendMessage(message)

        pager = self.params.createPager()
        pager.itemName = u"视频"
        pager.itemUnit = u"个"
        pager.pageSize = 10
        qry = PrepareCourseVideoQuery(
            """ u.userId,u.loginName,u.trueName,u.nickName,pcv.videoTitle,pcv.videoId,pcv.createDate,v.flvThumbNailHref,v.flvHref """
        )
        qry.prepareCourseId = self.prepareCourse.prepareCourseId
        qry.orderType = 0
        pager.totalRows = qry.count()
        pcv_list = qry.query_map(pager)

        request.setAttribute("pager", pager)
        request.setAttribute("pcv_list", pcv_list)
        request.setAttribute("group", self.group)
        request.setAttribute("prepareCourse", self.prepareCourse)

        response.setContentType("text/html; charset=UTF-8")
        return "/WEB-INF/ftl/course/manage_createPrepareCourse_VideoList.ftl"

    def delete_precarecoursevideo(self):
        vId = self.params.safeGetIntValues("vId")
        for id in vId:
            self.pc_svc.removePrepareCourseVideo(self.prepareCourseId, id)
Beispiel #30
0
class system_plugin(BaseAdminAction):
    ADMIN_MAIN = "/WEB-INF/ftl/admin/main.ftl"

    def __init__(self):
        self.params = ParamUtil(request)
        self.plugin_svc = __spring__.getBean("pluginService")
        self.pluginid = 0

    def execute(self):
        user = self.loginUser
        if user == None:
            return ActionResult.LOGIN
        accessControlService = __spring__.getBean("accessControlService")
        if accessControlService.isSystemAdmin(user) == False:
            self.addActionError(u"没有管理权限.")
            return ActionResult.ERROR
        self.pluginid = self.params.getIntParam("pluginId")
        if request.getMethod() == "POST":
            cmd = self.params.safeGetStringParam("cmd")
            if cmd == "new":
                self.save_or_update()
            elif cmd == "edit":
                self.save_or_update()
            elif cmd == "enabled":
                self.enable_plugin()
            elif cmd == "disabled":
                self.disabled_plugin()
            elif cmd == "delete":
                self.delete_plugin()
            else:
                return self.get_form()

        return self.get_form()

    def get_form(self):
        if self.pluginid != 0:
            plugin = self.plugin_svc.getPluginById(self.pluginid)
            request.setAttribute("plugin", plugin)

        plugin_list = self.plugin_svc.getAllPluginList()
        request.setAttribute("plugin_list", plugin_list)
        return "/WEB-INF/ftl/admin/system_plugin.ftl"

    def save_or_update(self):
        pluginName = self.params.safeGetStringParam("pluginName")
        pluginTitle = self.params.safeGetStringParam("pluginTitle")
        pluginIcon = self.params.safeGetStringParam("pluginIcon")
        if pluginName == "" or pluginTitle == "":
            self.addActionError(u"请输入英文和中文名称。")
            return ActionResult.ERROR
        if self.pluginid == 0:
            plugin = Plugin()
            plugin.setItemOrder(0)
            plugin.setEnabled(1)
            plugin.setPluginType("system")
        else:
            plugin = self.plugin_svc.getPluginById(self.pluginid)

        plugin.setPluginName(pluginName)
        plugin.setPluginTitle(pluginTitle)
        if pluginIcon != "":
            plugin.setIcon(pluginIcon)

        self.plugin_svc.saveOrUpdatePlugin(plugin)

    def enable_plugin(self):
        guid = self.params.safeGetIntValues("plugin_id")
        for id in guid:
            plugin = self.plugin_svc.getPluginById(id)
            if plugin != None:
                plugin.setEnabled(1)
                self.plugin_svc.saveOrUpdatePlugin(plugin)

    def disabled_plugin(self):
        guid = self.params.safeGetIntValues("plugin_id")
        for id in guid:
            plugin = self.plugin_svc.getPluginById(id)
            if plugin != None:
                plugin.setEnabled(0)
                self.plugin_svc.saveOrUpdatePlugin(plugin)

    def delete_plugin(self):
        guid = self.params.safeGetIntValues("plugin_id")
        for id in guid:
            plugin = self.plugin_svc.getPluginById(id)
            if plugin != None:
                self.plugin_svc.deletePlugin(plugin)