Ejemplo n.º 1
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
Ejemplo n.º 2
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)
Ejemplo n.º 3
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"
Ejemplo n.º 4
0
class SpecialSubjectQuery(BaseQuery):
    def __init__(self, selectFields):
        BaseQuery.__init__(self, selectFields)
        self.params = ParamUtil(request)
        self.specialSubjectId = None
        self.objectType = None
        self.objectId = None
        self.k = self.params.getStringParam("k")
        request.setAttribute("k", self.k)
        self.orderType = 0

    def initFromEntities(self, qctx):
        qctx.addEntity("SpecialSubject", "ss", "")

    def resolveEntity(self, qctx, entity):
        BaseQuery.resolveEntity(self, qctx, entity)

    def applyWhereCondition(self, qctx):
        if self.specialSubjectId != None:
            qctx.addAndWhere("ss.specialSubjectId = :specialSubjectId")
            qctx.setInteger("specialSubjectId", self.specialSubjectId)

        if self.objectType != None:
            qctx.addAndWhere("ss.objectType = :objectType")
            qctx.setString("objectType", self.objectType)

        if self.objectId != None:
            qctx.addAndWhere("ss.objectId = :objectId")
            qctx.setInteger("objectId", self.objectId)

    def applyOrderCondition(self, qctx):
        if self.orderType == 0:
            qctx.addOrder("ss.specialSubjectId DESC")
Ejemplo n.º 5
0
class PlugInTopicQuery(BaseQuery):
    def __init__(self, selectFields):
        BaseQuery.__init__(self, selectFields)
        self.params = ParamUtil(request)
        self.parentGuid = None
        self.parentObjectType = None
        self.createUserId = None
        self.orderType = 0
        self.k = self.params.getStringParam("k")
        request.setAttribute("k", self.k)

    def initFromEntities(self, qctx):
        qctx.addEntity("PlugInTopic", "pt", "")

    def resolveEntity(self, qctx, entity):
        BaseQuery.resolveEntity(self, qctx, entity)

    def applyWhereCondition(self, qctx):
        if (self.parentGuid != None):
            qctx.addAndWhere("pt.parentGuid = :parentGuid")
            qctx.setString("parentGuid", self.parentGuid)
        if (self.parentObjectType != None):
            qctx.addAndWhere("pt.parentObjectType = :parentObjectType")
            qctx.setString("parentObjectType", self.parentObjectType)
        if (self.createUserId != None):
            qctx.addAndWhere("pt.createUserId = :createUserId")
            qctx.setInteger("createUserId", self.createUserId)

    def applyOrderCondition(self, qctx):
        if self.orderType == 0:
            qctx.addOrder("pt.plugInTopicId DESC")
Ejemplo n.º 6
0
class admin_validate_user(BaseAdminAction):
    def __init__(self):
        self.params = ParamUtil(request)
        self.out = response.writer
    def execute(self):
        if self.loginUser == None:
            self.out.write(u"请先登录。")
            return
        accessControlService = __spring__.getBean("accessControlService")
        if not(accessControlService.isSystemAdmin(self.loginUser) or accessControlService.isSystemContentAdmin(self.loginUser)):
            self.out.write(u"您没有管理的权限。")
            return
        
        userName = self.params.getStringParam("loginName")
        if userName == None or userName == "":
            self.out.write(u"请输入用户的登录名。")
            return
        
        user_svc = __jitar__.userService
        user = user_svc.getUserByLoginName(userName)
        if user == None:
            self.out.write(u"您输入用户的登录名在本系统中不存在,请检查输入的是否正确。")
            return
        else:
            self.out.write("OK")
            return        
Ejemplo n.º 7
0
class split_article_table(BaseAdminAction, ActionResult):
    def execute(self):
        if self.loginUser == None:
            return ActionResult.LOGIN
        accessControlService = __spring__.getBean("accessControlService")
        if accessControlService.isSystemAdmin(self.loginUser) == False:
            self.addActionError(u"没有管理站点配置的权限,只有超级管理员才能进行管理。")
            return ActionResult.ERROR
        self.params = ParamUtil(request)
        cmd = self.params.getStringParam("cmd")
        webSiteManageService = __spring__.getBean("webSiteManageService")
        if cmd == "":
            y = webSiteManageService.getArticleYearList()
            request.setAttribute("info", "")
            ydata = []
            for yy in y:
                if yy != Calendar.getInstance().get(Calendar.YEAR):
                    count = webSiteManageService.getYearArticleCount(yy)
                    ydata.append({"year": yy, "count": count})
            request.setAttribute("ydata", ydata)
            return "/WEB-INF/ftl/admin/split_article_table.ftl"
        elif cmd == "split":
            year = self.params.safeGetIntParam("year")
            if year == 0:
                self.addActionError(u"请选择一个年份。")
                return ActionResult.ERROR
            ret = webSiteManageService.slpitArticleTable(year)
            self.addActionMessage(u"操作成功!")
            self.addActionLink(u"返回前页", "?")
            return ActionResult.SUCCESS
Ejemplo n.º 8
0
class PrepareCoursePlanQuery(BaseQuery):
    def __init__(self, selectFields):
        BaseQuery.__init__(self, selectFields)
        self.params = ParamUtil(request)
        self.groupId = None
        self.defaultPlan = None
        self.k = self.params.getStringParam("k")
        self.subjectId = self.params.getIntParamZeroAsNull("subjectId")
        self.gradeId = self.params.getIntParamZeroAsNull("gradeId")
        request.setAttribute("subjectId", self.subjectId)
        request.setAttribute("gradeId", self.gradeId)
        request.setAttribute("k", self.k)
        self.orderType = 0

    def initFromEntities(self, qctx):
        qctx.addEntity("PrepareCoursePlan", "pcp", "")

    def resolveEntity(self, qctx, entity):
        if "u" == entity:
            qctx.addEntity("User", "u", "pcp.createUserId = u.userId")
        else:
            BaseQuery.resolveEntity(qctx, entity)

    def applyWhereCondition(self, qctx):
        if (self.groupId != None):
            qctx.addAndWhere("pcp.groupId = :groupId")
            qctx.setInteger("groupId", self.groupId)
        if self.defaultPlan != None:
            qctx.addAndWhere("pcp.defaultPlan = :defaultPlan")
            qctx.setBoolean("defaultPlan", self.defaultPlan)

    def applyOrderCondition(self, qctx):
        if self.orderType == 0:
            qctx.addOrder("pcp.prepareCoursePlanId DESC")
Ejemplo n.º 9
0
class VoteQuery(BaseQuery):
    def __init__(self, selectFields):
        BaseQuery.__init__(self, selectFields)
        self.params = ParamUtil(request)
        self.parentGuid = None
        self.parentObjectType = None
        self.createUserId = None
        self.orderType = 0
        self.k = self.params.getStringParam("k")
        self.subjectId = self.params.getIntParamZeroAsNull("subjectId")
        self.gradeId = self.params.getIntParamZeroAsNull("gradeId")
        request.setAttribute("subjectId", self.subjectId)
        request.setAttribute("gradeId", self.gradeId)
        request.setAttribute("k", self.k)

    def initFromEntities(self, qctx):
        qctx.addEntity("Vote", "vote", "")

    def resolveEntity(self, qctx, entity):
        BaseQuery.resolveEntity(qctx, entity)

    def applyWhereCondition(self, qctx):
        if (self.parentGuid != None):
            qctx.addAndWhere("vote.parentGuid = :parentGuid")
            qctx.setString("parentGuid", self.parentGuid)
        if (self.parentObjectType != None):
            qctx.addAndWhere("vote.parentObjectType = :parentObjectType")
            qctx.setString("parentObjectType", self.parentObjectType)
        if (self.createUserId != None):
            qctx.addAndWhere("vote.createUserId = :createUserId")
            qctx.setInteger("createUserId", self.createUserId)

    def applyOrderCondition(self, qctx):
        if self.orderType == 0:
            qctx.addOrder("vote.voteId DESC")
Ejemplo n.º 10
0
class group_mutilcates_title(ActionExecutor):
    def __init__(self):
        self.params = ParamUtil(request)
        self.page_svc = __jitar__.pageService

    def execute(self):
        response.setContentType("text/html; charset=UTF-8")
        widgetId = self.params.getIntParamZeroAsNull("widgetId")
        if widgetId == none:
            out = response.writer
            out.write("未找到参数widgetId")
            return None
        widget = self.page_svc.getWidget(widgetId)
        if widget == none:
            out = response.writer
            out.write("未找到参数widget")
            return None

        request.setAttribute("widget", widget)
        action = self.params.getStringParam("act")
        if action != None or action != "":
            if request.getMethod() == "POST":
                return self.saveWidget()
        return "/WEB-INF/group/default/group_mutilcates_title.ftl"

    def saveWidget(self):
        #放弃了
        return None
Ejemplo n.º 11
0
class myaction(BaseAction):
    act_svc = __jitar__.actionService

    def execute(self):
        self.params = ParamUtil(request)
        self.out = response.writer
        if self.loginUser == None:
            self.addActionError(u"请先<a href='../../login.jsp'>登录</a>")
            return self.ERROR

        if request.getMethod() == "POST":
            return self.actionPost()
        else:
            qry = ActionUserUnitQuery(
                """ actu.actionUserId, actu.actionId, actu.actionUserId, actu.title,actu.startDateTime,actu.createDate,
                                              actu.actionUserStatus, actu.actionStatus, actu.ownerType, actu.ownerId
                                         """)
            qry.userId = self.loginUser.userId
            pager = self.params.createPager()
            pager.itemName = u"活动"
            pager.itemUnit = u"个"
            pager.pageSize = 10
            pager.totalRows = qry.count()
            user_action = qry.query_map(pager)
            request.setAttribute("user_action", user_action)
            request.setAttribute("pager", pager)
            return "/WEB-INF/ftl/action/myaction.ftl"

    def actionPost(self):
        ErrMsg = ""
        cmd = self.params.getStringParam("cmd")
        guids = self.params.safeGetIntValues("guid")
        if guids.size() < 1:
            self.addActionError(u"请先选择一个活动")
            self.addActionLink(u"返回", "myaction.py")
            return self.ERROR
        for actId in guids:
            action = self.act_svc.getActionByActionUserId(actId)
            if action.status != 0:
                ErrMsg = ErrMsg + u"<li>名为 " + action.title + u" 的活动不是一个正常状态。无法进行操作."
                continue
            if cmd == "attend":
                qry = """ UPDATE ActionUser Set status = 1 WHERE actionUserId = :actionUserId """
                command = Command(qry)
                command.setInteger("actionUserId", actId)
                command.update()
            if cmd == "quit":
                qry = """ UPDATE ActionUser Set status = 2 WHERE actionUserId = :actionUserId"""
                command = Command(qry)
                command.setInteger("actionUserId", actId)
                command.update()
            if cmd == "leave":
                qry = """ UPDATE ActionUser Set status = 3 WHERE actionUserId = :actionUserId """
                command = Command(qry)
                command.setInteger("actionUserId", actId)
                command.update()
        if ErrMsg == "": ErrMsg = u"操作已完成"
        self.addActionMessage(ErrMsg)
        self.addActionLink(u"返回", "myaction.py")
        return self.SUCCESS
Ejemplo n.º 12
0
class colorpicker:
    def __init__(self):
        self.params = ParamUtil(request)

    def execute(self):
        color = self.params.getStringParam("color")
        request.setAttribute("color", color)
        return "/WEB-INF/ftl/user/colorpicker.ftl"
Ejemplo n.º 13
0
class ChannelVideoQuery (BaseQuery):
    def __init__(self, selectFields):
        BaseQuery.__init__(self, selectFields)
        self.params = ParamUtil(request)
        self.channelId = None
        self.channelCate = None
        self.orderType = 0
        self.custormAndWhereClause = None
        self.k = self.params.getStringParam("k")
        self.f = self.params.getStringParam("f")
        if self.f == None:
            self.f = "title"
        if self.f == "":
            self.f = "title"
            
        request.setAttribute("k", self.k)
        request.setAttribute("f", self.f)
        
    def initFromEntities(self, qctx):
        qctx.addEntity("ChannelVideo", "cv", "")
        
    def resolveEntity(self, qctx, entity):
        if entity == "video":
            qctx.addJoinEntity("cv", "cv.video", "video","LEFT JOIN")
        elif "user" == entity:
            qctx.addJoinEntity("cv", "cv.user", "user","LEFT JOIN")
        elif "unit" == entity:
            qctx.addJoinEntity("cv", "cv.unit", "unit","LEFT JOIN")
        else:
            BaseQuery.resolveEntity(self,qctx, entity)
    
    def applyWhereCondition(self, qctx):
        qctx.addAndWhere("video.auditState = :auditState")
        qctx.setInteger("auditState", 0)
        if self.channelId != None:
            qctx.addAndWhere("cv.channelId = :channelId")
            qctx.setInteger("channelId", self.channelId)
        if self.custormAndWhereClause != None:
            qctx.addAndWhere(" " + self.custormAndWhereClause + " ")
        if self.channelCate != None:
            qctx.addAndWhere("cv.channelCate = :channelCate")
            qctx.setString("channelCate", self.channelCate)
        if self.k != None and self.k != '':
            newKey = self.k.replace("'","''").replace("%","[%]").replace("_","[_]").replace("[","[[]")
            if self.f == "uname":
                qctx.addAndWhere("user.trueName LIKE :keyword")
                qctx.setString("keyword", "%" + newKey + "%")
            elif self.f == "unitTitle":
                qctx.addAndWhere("unit.unitTitle LIKE :keyword")
                qctx.setString("keyword", "%" + newKey + "%")
            else:
                qctx.addAndWhere("video.title LIKE :keyword")
                qctx.setString("keyword", "%" + newKey + "%")
    
    def applyOrderCondition(self, qctx):
        if self.orderType == 0:
            qctx.addOrder("cv.channelVideoId DESC")
Ejemplo n.º 14
0
class admin_delete_action_comment(BaseAdminAction):
    def __init__(self):
        self.params = ParamUtil(request)
        self.user_svc = __jitar__.userService
        self.act_svc = __jitar__.actionService

    def execute(self):
        if self.loginUser == None:
            self.out.println(u"请先<a href='../../login.jsp'>登录</a>,然后才能管理活动")
            return
        accessControlService = __spring__.getBean("accessControlService")
        if False == accessControlService.isSystemContentAdmin(self.loginUser):
            self.addActionError(
                u"没有管理权限。<a href='' onclick='window.history.back();return false;'>返回</a>"
            )
            return ActionResult.ERROR

        cmd_type = self.params.getStringParam("cmdtype")
        if cmd_type == None or cmd_type == "":
            self.out.println(
                u"无效的命令。<a href='' onclick='window.history.back();return false;'>返回</a>"
            )
            return
        if cmd_type == "0":
            user_name = self.params.getStringParam("loginname")
            if user_name == None or user_name == "":
                self.out.println(
                    u"请输入用户登录名。<a href='' onclick='window.history.back();return false;'>返回</a>"
                )
                return
            user = self.user_svc.getUserByLoginName(user_name)
            if user == None:
                self.out.println(
                    u"您输入用户的登录名在本系统中不存在,请检查输入的是否正确。<a href='' onclick='window.history.back();return false;'>返回</a>"
                )
                return
            self.act_svc.deleteActionReplyByUserId(user.userId)

        if cmd_type == "1":
            reply_id = user_name = self.params.safeGetIntValues("guid")
            for replyid in reply_id:
                self.act_svc.deleteActionReplyById(replyid)
        response.sendRedirect("admin_action_comment_list.py")
Ejemplo n.º 15
0
class clearCache:
    def __init__(self):
        self.params = ParamUtil(request)

    def execute(self):
        cache_name = self.params.getStringParam("name")
        object_id = self.params.safeGetIntParam("id")
        if cache_name == "preparecourse":
            cache = __jitar__.cacheProvider.getCache('prepareCourse')
            cache_key = "prepareCourse_page_" + str(object_id)
            cache.remove(cache_key)
Ejemplo n.º 16
0
class ChannelArticleQuery (BaseQuery):
    def __init__(self, selectFields):
        BaseQuery.__init__(self, selectFields)
        self.params = ParamUtil(request)
        self.channelId = None
        self.articleState = True
        self.channelCate = None
        self.orderType = 0
        self.custormAndWhereClause = None
        self.k = self.params.getStringParam("k")
        self.f = self.params.getStringParam("f")
        if self.f == None:
            self.f = "title"
        if self.f == "":
            self.f = "title"
            
        request.setAttribute("k", self.k)
        request.setAttribute("f", self.f)
        
    def initFromEntities(self, qctx):
        qctx.addEntity("ChannelArticle", "ca", "")
        
    def resolveEntity(self, qctx, entity):
        BaseQuery.resolveEntity(self,qctx, entity)
    
    def applyWhereCondition(self, qctx):
        if self.channelId != None:
            qctx.addAndWhere("ca.channelId = :channelId")
            qctx.setInteger("channelId", self.channelId)
        if self.custormAndWhereClause != None:
            qctx.addAndWhere(" " + self.custormAndWhereClause + " ")
        if self.channelCate != None:
            qctx.addAndWhere("ca.channelCate = :channelCate")
            qctx.setString("channelCate", self.channelCate)
        if self.articleState != None:
            qctx.addAndWhere("ca.articleState = :articleState")
            qctx.setBoolean("articleState", self.articleState)
        if self.k != None and self.k != '':
            newKey = self.k.replace("'","''").replace("%","[%]").replace("_","[_]").replace("[","[[]")
            if self.f == "title":
                qctx.addAndWhere("ca.title LIKE :keyword")
                qctx.setString("keyword", "%" + newKey + "%")
            elif self.f == "uname":
                qctx.addAndWhere("ca.loginName LIKE :keyword OR ca.userTrueName LIKE :keyword")
                qctx.setString("keyword", "%" + newKey + "%")
            else:
                qctx.addAndWhere("ca.title LIKE :keyword OR ca.loginName LIKE :keyword")
                qctx.setString("keyword", "%" + newKey + "%")
    
    def applyOrderCondition(self, qctx):
        if self.orderType == 0:
            qctx.addOrder("ca.channelArticleId DESC")
Ejemplo n.º 17
0
class actions:
    def __init__(self):
        self.params = ParamUtil(request)

    def execute(self):
        self.get_action_list()
        request.setAttribute("head_nav", "actions")
        return "/WEB-INF/ftl/site_actions.ftl"

    def get_action_list(self):
        ownerType = self.params.getStringParam("ownerType")
        showtype = self.params.getStringParam("type")
        request.setAttribute("type", showtype)
        request.setAttribute("ownerType", ownerType)

        self.pager = self.params.createPager()
        self.pager.itemName = u"活动"
        self.pager.itemUnit = u"个"
        self.pager.pageSize = 20
        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.loginName,u.trueName
                          """)
        if not (ownerType == None or len(ownerType) < 1):
            qry.ownerType = ownerType

        if showtype == "running":
            qry.qryDate = 1  #正在进行
        elif showtype == "finish":
            qry.qryDate = 2  #已经完成的活动
        elif showtype == "new":
            qry.qryDate = 0  #正在报名的活动

        self.pager.totalRows = qry.count()
        action_list = qry.query_map(self.pager)
        request.setAttribute("action_list", action_list)
        request.setAttribute("pager", self.pager)
Ejemplo n.º 18
0
class PrepareArticleQuery(BaseQuery):
    def __init__(self, selectFields):
        BaseQuery.__init__(self, selectFields)
        self.params = ParamUtil(request)
        self.prepareCourseId = None
        self.prepareCourseStageId = None
        self.articleState = True
        self.k = self.params.getStringParam("k")
        self.subjectId = self.params.getIntParamZeroAsNull("subjectId")
        self.gradeId = self.params.getIntParamZeroAsNull("gradeId")
        request.setAttribute("subjectId", self.subjectId)
        request.setAttribute("gradeId", self.gradeId)
        request.setAttribute("k", self.k)

        self.orderType = 0

    def initFromEntities(self, qctx):
        qctx.addEntity("PrepareCourseArticle", "pca", "")

    def resolveEntity(self, qctx, entity):
        if "pcs" == entity:
            qctx.addEntity(
                "PrepareCourseStage", "pcs",
                "pcs.prepareCourseStageId = pca.prepareCourseStageId")
        else:
            BaseQuery.resolveEntity(self, qctx, entity)

    def applyWhereCondition(self, qctx):
        if (self.prepareCourseStageId != None):
            qctx.addAndWhere(
                "pca.prepareCourseStageId = :prepareCourseStageId")
            qctx.setInteger("prepareCourseStageId", self.prepareCourseStageId)
        if (self.prepareCourseId != None):
            qctx.addAndWhere("pca.prepareCourseId = :prepareCourseId")
            qctx.setInteger("prepareCourseId", self.prepareCourseId)
        if self.articleState != None:
            qctx.addAndWhere("pca.articleState = :articleState")
            qctx.setBoolean("articleState", self.articleState)

    def applyOrderCondition(self, qctx):
        if self.orderType == 0:
            qctx.addOrder("pca.prepareCourseArticleId DESC")
Ejemplo n.º 19
0
class ActionExecutor(JythonBaseAction, ActionResult):
  def __init__(self):
    self.params = ParamUtil(request)
    self.logger = LogFactory.getLog(self.__class__);
    
    
  def execute(self):
    # 得到命令, 并调用 dispatcher() 进行命令派发.
    cmd = self.params.getStringParam("cmd")    
    result = self.dispatcher(cmd)
    
    # 如果没有任何链接加入到 actionLinks 中, 则添加一个缺省的.
    if not self.hasActionLinks():
      self.addDefaultReturnActionLink()
    return result
  
  
  # 给用户提示未知命令 cmd. 
  def unknownCommand(self, cmd='unknown'):
    self.addActionError("Unknown Command : " + cmd)
    return ActionResult.ERROR
Ejemplo n.º 20
0
class user(ActionExecutor):
    def __init__(self):
        self.params = ParamUtil(request)
        self.chatuser_svc = __spring__.getBean("chatUserService")

    def execute(self):
        request.setAttribute("ChatRoomName", "聊天室")
        if self.loginUser == None:
            response.getWriter().write("请先登录。")
            print "请先登录。"
            return
        roomId = self.params.getStringParam("roomId")
        if roomId == None or roomId == "":
            roomId = "1"
        userid = self.loginUser.getUserId()
        userName = self.loginUser.getTrueName()

        chatUser = self.chatuser_svc.getCacheChatUser(int(roomId), userid)
        if chatUser == None:
            chatUser = ChatUser()
            chatUser.userId = userid
            chatUser.roomId = int(roomId)
            chatUser.isLeave = False
            chatUser.isActived = True
            chatUser.userName = userName
            self.chatuser_svc.saveChatUser(chatUser)
        # 设置当前自己是在线状态
        self.chatuser_svc.updateChatUserIsLeave(int(roomId), userid, False)

        roomUserList = self.chatuser_svc.getCacheChatUsers(int(roomId))
        userList = []
        for u in roomUserList:
            if u.isLeave == False and (u in userList) == False:
                userList.append(u)

        request.setAttribute("roomId", roomId)
        request.setAttribute("userList", userList)
        return "/WEB-INF/ftl/chat/user.ftl"
Ejemplo n.º 21
0
class user_customskin(ActionExecutor):
    def __init__(self):

        self.params = ParamUtil(request)
        self.page_svc = __spring__.getBean("pageService")
        self.login_user = self.getLoginUser()

    def execute(self):
        if self.loginUser == None:
            response.sendRedirect("../login.jsp")
            return None
        page = self.page_svc.getUserIndexPage(self.login_user)
        if page == None:
            self.addActionError(u"没有找到您的首页。")
            return ActionResult.ERROR
        if request.getMethod() == "POST":
            bgcolor = self.params.getStringParam("bgcolor")
            logo = self.params.getStringParam("logo")
            logoheight = self.params.getStringParam("logoheight")
            titletop = self.params.getStringParam("titletop")
            titleleft = self.params.getStringParam("titleleft")
            titledisplay = self.params.getStringParam("titledisplay")
            jstring = '{"bgcolor":"' + bgcolor + '","logo":"' + logo + '","logoheight":"' + logoheight + '","titleleft":"' + titleleft + '","titletop":"' + titletop + '","titledisplay":"' + titledisplay + '"}'
            jsObj = JSONObject.parse(jstring)
            self.page_svc.setPageCustomSkin(page, jsObj.toString())
            self.addActionMessage(u"自定义设置已保存")
            return ActionResult.SUCCESS
        else:
            if page.customSkin != None:
                customSkin = JSONObject.parse(page.customSkin)
                color = customSkin["bgcolor"]
                if len(color) > 0 and color[0:1] == "#": color = color[1:6]
                request.setAttribute("color", color)
                request.setAttribute("customSkin", customSkin)
            else:
                customSkin = {
                    "bgcolor": "",
                    "logo": "",
                    "logoheight": "",
                    "titledisplay": "",
                    "titleleft": "",
                    "titletop": ""
                }
                request.setAttribute("customSkin", customSkin)
            return "/WEB-INF/ftl/user/user_custom_info.ftl"
Ejemplo n.º 22
0
class actionlist(BaseAction):
    
    def __init__(self):
        self.params = ParamUtil(request)
    
    def execute(self):
        
        self.out = response.writer
        if self.loginUser == None:
            self.out.write(u"请先<a href='../../login.jsp'>登录</a>,然后才能管理活动")
            return
        
        site_config = SiteConfig()
        site_config.get_config()
        show_type = self.params.getStringParam("type")
        
        self.pager = self.params.createPager()
        self.pager.itemName = u"活动"
        self.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
                            """)
        if show_type == "owner":
            qry.createUserId = self.loginUser.userId
            
        self.pager.totalRows = qry.count()
        action_list = qry.query_map(self.pager)
        request.setAttribute("action_list", action_list)
        request.setAttribute("pager", self.pager)
        response.setContentType("text/html; charset=UTF-8")
        
        if show_type == "owner":
            return "/WEB-INF/ftl/action/action_manage_list.ftl"
        else:
            return "/WEB-INF/ftl/action/action_list.ftl"
Ejemplo n.º 23
0
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()
Ejemplo n.º 24
0
class group_mutilcates(ActionExecutor, ShowGroupBase, RequestMixiner,
                       ResponseMixiner, PageCheckMixiner):
    def __init__(self):
        self.params = ParamUtil(request)
        self.group_svc = __jitar__.groupService
        self.page_svc = __jitar__.pageService

    def execute(self):
        categoryService = __jitar__.categoryService

        groupName = request.getAttribute("groupName")
        if groupName == None or groupName == "":
            return self.notFound()
        group = group_svc.getGroupByName(groupName)
        if group == None:
            return self.notFound()
        widgetId = self.params.getIntParamZeroAsNull("widgetId")
        if widgetId == None:
            return self.notFound()
        groupMutil = self.group_svc.getGroupMutilByWidgetId(widgetId)

        gm = None
        if self.loginUser != None:
            gm = self.group_svc.getGroupMemberByGroupIdAndUserId(
                group.groupId, self.loginUser.userId)
        request.setAttribute("group_member", gm)

        #课题研究组的分类
        self.groupPrentId = None
        isKtGroup = 0
        uuid = self.group_svc.getGroupCateUuid(group)
        if uuid == CategoryService.GROUP_CATEGORY_GUID_KTYJ:
            #课题
            isKtGroup = 1
            request.setAttribute("isKtGroup", "1")
            #课题的文章资源图片视频需要把下级的汇聚过来
            self.groupPrentId = group.groupId
        elif uuid == CategoryService.GROUP_CATEGORY_GUID_JTBK:
            #备课
            isKtGroup = 2
            request.setAttribute("isKtGroup", "2")
        else:
            isKtGroup = 0
            request.setAttribute("isKtGroup", "0")

        cmd = self.params.getStringParam("cmd")
        if cmd == "savecate":
            self.savecate()
        elif cmd == "savetitle":
            self.savetitle()

        itemType = CommonUtil.toGroupArticleCategoryItemType(
            group.getGroupId())
        articleCate_tree = categoryService.getCategoryTree(itemType)
        itemType = CommonUtil.toGroupResourceCategoryItemType(
            group.getGroupId())
        resourceCate_tree = categoryService.getCategoryTree(itemType)
        itemType = CommonUtil.toGroupPhotoCategoryItemType(group.getGroupId())
        photoCate_tree = categoryService.getCategoryTree(itemType)
        itemType = CommonUtil.toGroupVideoCategoryItemType(group.getGroupId())
        videoCate_tree = categoryService.getCategoryTree(itemType)

        request.setAttribute("articleCate_tree", articleCate_tree)
        request.setAttribute("resourceCate_tree", resourceCate_tree)
        request.setAttribute("photoCate_tree", photoCate_tree)
        request.setAttribute("videoCate_tree", videoCate_tree)

        article_cateId = 0
        resource_cateId = 0
        photo_cateId = 0
        video_cateId = 0
        if groupMutil != None:

            article_cateId = groupMutil.articleCateId
            resource_cateId = groupMutil.resourceCateId
            photo_cateId = groupMutil.photoCateId
            video_cateId = groupMutil.videoCateId

            article_cateName = ""
            resource_cateName = ""
            photo_cateName = ""
            video_cateName = ""
            if isKtGroup == 1:
                cateArt = categoryService.getCategory(article_cateId)
                cateRes = categoryService.getCategory(resource_cateId)
                catePho = categoryService.getCategory(photo_cateId)
                cateVio = categoryService.getCategory(video_cateId)
                if cateArt != None:
                    article_cateName = cateArt.name
                if cateRes != None:
                    resource_cateName = cateRes.name
                if catePho != None:
                    photo_cateName = catePho.name
                if cateVio != None:
                    video_cateName = cateVio.name
            qry1 = GroupMutilcatesQuery(
                """ v.videoId, v.title, v.tags, v.userId,v.href,v.flvHref,v.flvThumbNailHref,g.groupTitle,g.groupName """
            )
            if isKtGroup == 1:
                if video_cateName != "":
                    qry1.videoCateName = video_cateName
                else:
                    if groupMutil.videoCateId == None:
                        qry1.videoCateId = 0
                    else:
                        qry1.videoCateId = groupMutil.videoCateId
                qry1.groupPrentId = self.groupPrentId
            else:
                if groupMutil.videoCateId == None:
                    qry1.videoCateId = 0
                else:
                    qry1.videoCateId = groupMutil.videoCateId
                qry1.widgetId = widgetId
            video_list = qry1.query_map(groupMutil.videoNumShow)
            request.setAttribute("video_list", video_list)

            qry2 = GroupMutilcatesQuery(
                """ p.photoId, p.title, p.tags, p.userId,p.isPrivateShow, p.createDate,p.href,g.groupTitle,g.groupName """
            )
            if isKtGroup == 1:
                if photo_cateName != "":
                    qry2.photoCateName = photo_cateName
                else:
                    if groupMutil.photoCateId == None:
                        qry2.photoCateId = 0
                    else:
                        qry2.photoCateId = groupMutil.photoCateId
                qry2.groupPrentId = self.groupPrentId
            else:
                if groupMutil.photoCateId == None:
                    qry2.photoCateId = 0
                else:
                    qry2.photoCateId = groupMutil.photoCateId
                qry2.widgetId = widgetId
            photo_list = qry2.query_map(groupMutil.photoNumShow)
            request.setAttribute("photo_list", photo_list)

            qry3 = GroupMutilcatesQuery(
                """ a.articleId, a.title, a.userId ,a.createDate,a.typeState,g.groupTitle,g.groupName """
            )
            if isKtGroup == 1:
                if article_cateName != "":
                    qry3.articleCateName = article_cateName
                else:
                    if groupMutil.articleCateId == None:
                        qry3.articleCateId = 0
                    else:
                        qry3.articleCateId = groupMutil.articleCateId
                qry3.groupPrentId = self.groupPrentId
            else:
                if groupMutil.articleCateId == None:
                    qry3.articleCateId = 0
                else:
                    qry3.articleCateId = groupMutil.articleCateId
                qry3.widgetId = widgetId
            article_list = qry3.query_map(groupMutil.articleNumShow)
            request.setAttribute("article_list", article_list)

            qry4 = GroupMutilcatesQuery(
                """ r.resourceId, r.title,r.userId,r.createDate,g.groupTitle,g.groupName """
            )
            if isKtGroup == 1:
                if resource_cateName != "":
                    qry4.resourceCateName = resource_cateName
                else:
                    if groupMutil.resourceCateId == None:
                        qry4.resourceCateId = 0
                    else:
                        qry4.resourceCateId = groupMutil.resourceCateId
                qry4.groupPrentId = self.groupPrentId
            else:
                if groupMutil.resourceCateId == None:
                    qry4.resourceCateId = 0
                else:
                    qry4.resourceCateId = groupMutil.resourceCateId
                qry4.widgetId = widgetId
            resource_list = qry4.query_map(groupMutil.resourceNumShow)
            request.setAttribute("resource_list", resource_list)

        widget = self.page_svc.getWidget(widgetId)
        request.setAttribute("widget", widget)
        request.setAttribute("groupMutil", groupMutil)

        request.setAttribute("article_cateId", article_cateId)
        request.setAttribute("resource_cateId", resource_cateId)
        request.setAttribute("photo_cateId", photo_cateId)
        request.setAttribute("video_cateId", video_cateId)

        request.setAttribute("group", group)
        request.setAttribute("widgetId", widgetId)
        response.contentType = "text/html; charset=UTF-8"
        return "/WEB-INF/group/default/group_mutilcates.ftl"

    def notFound(self):
        response.contentType = "text/html; charset=UTF-8"
        out = response.writer
        out.write("未找到该协作组或参数不正确")
        return None

    def savetitle(self):
        widgetId = self.params.safeGetIntParam("widgetId")
        title = self.params.getStringParam("title")
        widget = self.page_svc.getWidget(widgetId)
        if widget != None:
            if title != "":
                widget.title = title
                self.page_svc.saveOrUpdate(widget)

    def savecate(self):
        widgetId = self.params.safeGetIntParam("widgetId")
        groupMutil = self.group_svc.getGroupMutilByWidgetId(widgetId)
        if groupMutil == None:
            groupMutil = GroupMutil()
        cate_art_Id = self.params.safeGetIntParam("cate_art_" + str(widgetId))
        cate_res_Id = self.params.safeGetIntParam("cate_res_" + str(widgetId))
        cate_pho_Id = self.params.safeGetIntParam("cate_pho_" + str(widgetId))
        cate_vio_Id = self.params.safeGetIntParam("cate_vio_" + str(widgetId))
        articlenum = self.params.safeGetIntParam("articlenum")
        if articlenum == 0:
            articlenum = 10
        resourcenum = self.params.safeGetIntParam("resourcenum")
        if resourcenu == 0:
            resourcenum = 10
        photonum = self.params.safeGetIntParam("photonum")
        if photonum == 0:
            photonum = 3
        videonum = self.params.safeGetIntParam("videonum")
        if videonum == 0:
            videonum = 3
        groupMutil.articleCateId = cate_art_Id
        groupMutil.resourceCateId = cate_res_Id
        groupMutil.photoCateId = cate_pho_Id
        groupMutil.videoCateId = cate_vio_Id
        groupMutil.articleNumShow = articlenum
        groupMutil.resourceNumShow = resourcenum
        groupMutil.photoNumShow = photonum
        groupMutil.videoNumShow = videonum
        self.group_svc.saveGroupMutil(groupMutil)
Ejemplo n.º 25
0
class groups(SubjectMixiner):
    def __init__(self):
        self.params = ParamUtil(request)
        return

    def execute(self):

        self.qrytype = self.params.getStringParam("type")

        # 协作组分类, 学科, 区县.
        self.get_group_cate()
        self.get_subject_list()

        # 学段分类.
        self.get_grade_list()

        # 推荐, 热门协作组, (最新不使用).
        self.get_rcmd_group_list()
        self.get_hot_group_list()
        # self.get_new_group_list()

        # 查询协作组.
        self.query_group_list()

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

        self.query_group_activity_list()

        response.contentType = "text/html; charset=UTF-8"
        return "/WEB-INF/ftl/site_groups.ftl"

    def _getCateSvc(self):
        return __jitar__.categoryService

    # 协作组分类.
    def get_group_cate(self):
        group_cate = self._getCateSvc().getCategoryTree("group")
        request.setAttribute("group_cate", group_cate)

    # 学科列表.
    def get_subject_list(self):
        self.putSubjectList()

    #学段
    def get_grade_list(self):
        request.setAttribute("gradeId",
                             self.params.getIntParamZeroAsNull("gradeId"))
        self.putGradeList()

    # 推荐协作组.
    def get_rcmd_group_list(self):
        qry = GroupQuery(
            """ g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.groupIntroduce,g.parentId,g.XKXDName,g.XKXDId """
        )
        qry.isRecommend = True
        rcmd_group_list = qry.query_map(10)
        request.setAttribute("rcmd_group_list", rcmd_group_list)

    # 热门协作组.
    def get_hot_group_list(self):
        qry = GroupQuery(
            """ g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.groupIntroduce, g.createUserId,g.parentId,g.XKXDName,g.XKXDId,
                         u.loginName, u.nickName """)
        qry.orderType = GroupQuery.ORDER_BY_VISITCOUNT_DESC  # visitCount DESC
        hot_group_list = qry.query_map()
        request.setAttribute("hot_group_list", hot_group_list)

    # 最新协作组.
    def get_new_group_list(self):
        qry = GroupQuery(
            """  g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.groupIntroduce,g.parentId,g.XKXDName,g.XKXDId """
        )
        new_group_list = qry.query_map()
        request.setAttribute("new_group_list", new_group_list)

    # 查询协作组.
    def query_group_list(self):
        qry = GroupQuery(
            """ g.groupId, g.groupIcon, g.groupTitle, g.createDate, g.userCount,g.parentId,
              g.visitCount, g.articleCount, g.topicCount, g.resourceCount, g.groupIntroduce,g.XKXDName,g.XKXDId,
              g.groupTags, subj.subjectName, grad.gradeName, sc.name as scName """
        )
        qry.subjectId = self.params.getIntParamZeroAsNull('subjectId')
        qry.categoryId = self.params.getIntParamZeroAsNull('categoryId')
        qry.gradeId = self.params.getIntParamZeroAsNull('gradeId')
        qry.k = self.params.getStringParam("k")
        if self.qrytype != None:
            if self.qrytype == "best":
                qry.isBestGroup = True
            if self.qrytype == "rcmd":
                qry.isRecommend = True
            if self.qrytype == "hot":
                qry.orderType = GroupQuery.ORDER_BY_VISITCOUNT_DESC
            if self.qrytype == "new":
                qry.orderType = GroupQuery.ORDER_BY_ID_DESC

        pager = self.createPager()

        pager.totalRows = qry.count()
        group_list = qry.query_map(pager)
        request.setAttribute("group_list", group_list)
        #print "group_list = ", group_list
        request.setAttribute("pager", pager)
        request.setAttribute("subjectId", qry.subjectId)
        request.setAttribute("categoryId", qry.categoryId)
        request.setAttribute("gradeId", qry.gradeId)
        request.setAttribute("k", qry.k)

    # 创建分页对象.
    def createPager(self):
        pager = self.params.createPager()
        pager.itemName = u"协作组"
        pager.itemUnit = u"个"
        pager.pageSize = 10
        return pager

    # 活跃度排行
    def query_group_activity_list(self):
        # 活跃度算法 (g.userCount + g.articleCount + g.topicCount + g.resourceCount) / 10
        hql = """ select new Map( g.groupId as groupId, g.groupTitle as groupTitle, g.parentId, (g.userCount + g.articleCount + g.topicCount + g.resourceCount) / 10 as totalCount)
                      FROM Group g
                      where g.groupState = 0
                      ORDER BY (g.userCount + g.articleCount + g.topicCount + g.resourceCount) DESC
                     """
        cmd = Command(hql)
        group_activity_list = cmd.open(25)
        request.setAttribute("group_activity_list", group_activity_list)
Ejemplo n.º 26
0
class preparecourse_topic_create(PrepareCoursePageService):
    def __init__(self):
        self.params = ParamUtil(request)
        self.printer = response.getWriter()        
        self.pc_svc = __jitar__.getPrepareCourseService()
        
    def execute(self):
        self.getBaseData()
        
        response.setContentType("text/html; charset=UTF-8")
        
        if self.prepareCourseId == 0:
            self.printer.write(u"无效的课程标识。")
            return
        self.prepareCourse = self.getBasePrepareCourse()
        if self.prepareCourse == None:
            self.printer.write(u"没有加载到所请求的备课。")
            return
        if self.canView(self.prepareCourse) == False:
            self.printer.write(u"您无权查看本内容。")
            return
        
        currentStage = self.pc_svc.getPrepareCourseStage(self.prepareCourseStageId)
        if currentStage == None:
            self.printer.write(u"无效的流程标识。")
            return       
        
        if request.getMethod() == "POST":
            title = self.params.getStringParam("topic_title")
            content = self.params.getStringParam("topicContent")
            if title == None or title == "":
                showError = ShowError()
                showError.msg = u"请输入标题。<a href='preparecourse_topic_create.py'>返回</a>"
                return showError.printError()
            if content == None or content == "":
                showError = ShowError()
                showError.msg = u"请输入讨论内容。<a href='preparecourse_topic_create.py'>返回</a>"
                return showError.printError()
            
            prepareCourseTopic = PrepareCourseTopic()
            prepareCourseTopic.setPrepareCourseId(self.prepareCourseId)
            prepareCourseTopic.setPrepareCourseStageId(self.prepareCourseStageId)
            prepareCourseTopic.setTitle(title)
            prepareCourseTopic.setContent(content)
            prepareCourseTopic.setUserId(self.loginUser.userId)
            prepareCourseTopic.setCreateDate(Date())
            self.pc_svc.savePrepareCourseTopic(prepareCourseTopic)
            return_url = request.getContextPath() + "/p/" + str(self.prepareCourseId) + "/" + str(self.prepareCourseStageId) + "/"
            response.sendRedirect(return_url)
            return        
            
        page = self.getPrepareCoursePageWithCustomSkin(self.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",self.prepareCourse)
        request.setAttribute("currentStage",currentStage)
        
        response.setContentType("text/html; charset=UTF-8")        
        return "/WEB-INF/ftl/course/preparecourse_topic_create.ftl"
Ejemplo n.º 27
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()
    
Ejemplo n.º 28
0
class site_subject_resources(SubjectMixiner):
    def __init__(self):
        self.params = ParamUtil(request)

    def execute(self):
        #print "site_subject_resources python 脚本正在执行"
        self.putSubject()

        # 资源分类
        self.get_res_cates()

        # 资源上载排行
        self.get_upload_sorter()

        # 资源下载排行
        self.get_download_resource_list()

        # 高亮显示项目.
        self.setData("head_nav", "resources")

        return "success"

    def _getCateSvc(self):
        return __jitar__.categoryService

    # 资源分类.
    def get_res_cates(self):
        res_cates = self._getCateSvc().getCategoryTree("resource")
        request.setAttribute("res_cates", res_cates)

        # 资源主列表.
        self.query_resource()
        #resource_list = QueryResourceBean()
        #resource_list.varName = "resource_list"
        #resource_list.usePager = 1
        #self.addBean(resource_list)

    # 资源上载排行.
    def get_upload_sorter(self):
        qry = UserQuery("""  u.resourceCount, u.loginName, u.nickName """)
        qry.orderType = 4  #UserQuery.ORDER_TYPE_RESOURCE_COUNT_DESC
        upload_sorter = qry.query_map(20)
        request.setAttribute("upload_sorter", upload_sorter)

    # 资源下载排行.
    def get_download_resource_list(self):
        qry = ResourceQuery(
            """ r.resourceId, r.href, r.title, r.downloadCount """)
        qry.subjectId = self.params.getIntParamZeroAsNull("subjectId")
        qry.sysCateId = self.params.getIntParamZeroAsNull("categoryId")
        qry.k = self.params.getStringParam("k")

        qry.orderType = 4
        download_resource_list = qry.query_map(20)
        request.setAttribute("download_resource_list", download_resource_list)
        #print "download_resource_list = ", download_resource_list

    # 资源查询主列表.
    def query_resource(self):
        qry = ResourceQuery(
            """ r.resourceId, r.title, r.href, r.fsize, r.createDate, 
          u.loginName, u.nickName, grad.gradeName, sc.name as scName """)
        pager = self.createPager()

        # 根据页面参数处理.
        type = self.params.getStringParam("type")
        if type == "rcmd":
            qry.rcmdState = True
        elif type == "hot":
            qry.orderType = ResourceQuery.ORDER_TYPE_DOWNLOADCOUNT_DESC
        elif type == "cmt":
            qry.orderType = ResourceQuery.ORDER_TYPE_COMMENTCOUNT_DESC
        else:
            type = "new"
        request.setAttribute("type", type)

        qry.subjectId = self.subject.subjectId
        qry.k = self.params.getStringParam("k")
        qry.sysCateId = self.params.getIntParamZeroAsNull("categoryId")

        # 查询数据.
        pager.totalRows = qry.count()
        resource_list = qry.query_map(pager)

        request.setAttribute("resource_list", resource_list)
        request.setAttribute("pager", pager)

    def createPager(self):
        pager = self.params.createPager()
        pager.pageSize = 20
        pager.itemName = u"资源"
        pager.itemUnit = u"个"
        return pager
Ejemplo n.º 29
0
class category_Order_article (ActionExecutor):
  CATEGORY_LIST = "/WEB-INF/ftl/admin/category_Order.ftl"
  
  # 构造.
  def __init__(self):
    self.params = ParamUtil(request)
    self.cate_svc = __jitar__.categoryService
    self.itemType = "user"
    return
 
  
  # 根据'cmd'进行派发.
  def dispatcher(self, cmd):
    
    # 以下必须要求是登录用户
    if self.loginUser == None: return ActionResult.LOGIN
    if self.loginUser == None:
      self.addActionError(u"请重新登陆.")
      return ActionResult.ERROR
    
    # 根据cmd参数,执行相应的方法.
    if cmd == "" or cmd == None or cmd == "list":
      return self.list()          # 列表显示.
    elif cmd == "save":
      return self.save()          # 保存.
    else :
      self.addActionError(u"未知的命令参数:" + cmd)
      return ActionResult.ERROR    


  # 系统所有机构的列表显示.
  def list(self):
    # 构造查询.根据传递的参数与权限结合来判断显示什么分类
    # default 缺省为系统分类, 也就是文章分类
    # group 群组分类
    # resource 资源分类
    # photo 照片分类
    # blog 工作组分类
    # user_1 用户1的分类
    # gres_1 协助组1的分类 
    # user_res_1 用户1的资源分类
    
    if self.loginUser == None: return ActionResult.LOGIN
    
    query = AdminCategoryQuery(""" cat.categoryId, cat.name, cat.itemType, cat.parentId, cat.parentPath,cat.childNum, cat.orderNum, cat.description """)
    self.localTypeName = "";
    self.parentId = self.params.getIntParamZeroAsNull("parentId")
    self.itemType = self.params.getStringParam("type")
    #print 'parentId='+str(self.parentId)      
    #print 'itemType='+self.itemType
    #print 'split0-4='+self.itemType[0:4]
    if self.itemType == None or self.itemType == '': 
      self.itemType = 'default'  
    query.itemType = self.itemType
    query.parentId = self.parentId
    if self.itemType == 'default' or self.itemType == 'group' or self.itemType == 'resource' or self.itemType == 'blog' or self.itemType == 'photo':
      # TODO: 权限检查.
      # print self.itemType
      self.localTypeName = self.itemType
      if self.canAdmin() == False:
        self.addActionError(u"没有管理系统分类的权限.")
        return ActionResult.ERROR
      
    elif self.itemType[0:9] == 'user_res_': 
      #TODO: 检查当前用户是否是本分类的用户
      # print self.itemType
      cateUserId = self.itemType[9:]
      if str(self.loginUser.userId) == cateUserId:
        self.localTypeName = "user_res"
        self.cateUserId = cateUserId
      else:
        self.addActionError(u"您不是id=" + str(cateUserId) + u"的用户")
        return ActionResult.ERROR
      
    elif self.itemType[0:5] == 'user_':
      #TODO: 检查当前用户是否是本分类的用户
      # print self.itemType  
      cateUserId = self.itemType[5:]
      # print "cateUserId=" + str(cateUserId)
      # print "myID=" + str(self.loginUser.userId)
      if str(self.loginUser.userId) == cateUserId:
        self.localTypeName = "user" 
        self.cateUserId = cateUserId
      else:
        self.addActionError(u"您不是id=" + str(cateUserId) + u"的用户")
        return ActionResult.ERROR
    
    elif self.itemType[0:5] == 'gres_':
      #TODO: 检查当前用户是否是协作组的管理员
      #print self.itemType
      groupId = self.itemType[5:]
      #print "groupId=" + str(groupId)
      gmQuery = GroupMemberQuery(""" gm.groupId, gm.groupRole """)
      gmQuery.userId = self.loginUser.userId
      gmQuery.groupId = int(groupId)
      group_list = gmQuery.query_map(1)
      if group_list.size > 0:
        self.localTypeName = "gres"
        self.cateGroupId = int(groupId)
      else:
        self.addActionError(u"您不是id=" + str(cateUserId) + u"的群组管理员")
        return ActionResult.ERROR
    
    else:
      # print self.itemType
      self.addActionError("无效的参数")
      return ActionResult.ERROR
        
    # 调用分页函数.
    pager = self.createPager()
    pager.totalRows = query.count()
        
    # 得到所有分类的列表.
    cateList = query.query_map(pager)
        
    # 传给页面.
    request.setAttribute("category_list", cateList)
    request.setAttribute("pager", pager)
    
    # 将参数放到查询的页面.
    request.setAttribute("parentId", query.parentId)
    request.setAttribute("itemType", query.itemType)
    request.setAttribute("type", self.localTypeName)
    
    if query.parentId == '' or query.parentId == None:
      request.setAttribute("parentparentId", "")
    else:
      pcategory = self.cate_svc.getCategory(int(query.parentId))
      if pcategory == None:
        request.setAttribute("parentparentId", "")
      else:    
        request.setAttribute("parentparentId", pcategory.parentId)
      
    # 返回到要显示的页面.
    return self.CATEGORY_LIST
    
  
  # 保存分类排序结果
  def save(self):
    cate_ids = self.params.getIdList("cateid")
    nos = self.params.getIdList("orderNo")
    if cate_ids == None or cate_ids.size() == 0:
      self.addActionError(u"没有选择要操作的分类.")
      return ActionResult.ERROR
  
    if nos == None or nos.size() == 0:
      self.addActionError(u"没有选择要操作的分类序号.")
      return ActionResult.ERROR
    iIndex = -1
    for id in cate_ids:
      iIndex = iIndex + 1
      no = nos[iIndex]
      #print "id=" + str(id) + "  no=" + str(no)
      category = self.cate_svc.getCategory(id)
      if category == None:
        self.addActionError(u"未能找到标识为 " + id + u" 的分类￀ᅡᅴ")
        return ActionResult.ERROR
      else:  
        self.cate_svc.setCategoryOrder(id, no)
    self.parentId = self.params.getIntParamZeroAsNull("parentId")
    self.itemType = self.params.getStringParam("type")
    link = "?cmd=list&amp;type=" + str(self.itemType) + "&amp;parentId=" 
    if self.parentId != None:
      link += str(self.parentId)
    self.addActionLink(u"返回", link)
    return ActionResult.SUCCESS


  # 创建并返回一个分页对象.
  def createPager(self):
    # 调用Java的函数.
    pager = self.params.createPager()
    pager.itemName = u"分类"
    pager.itemUnit = u"个"
    pager.pageSize = 20
    return pager
Ejemplo n.º 30
0
class admin_school_link(BaseAdminAction, ActionResult):
    # 常量 机构风采系统类型 = 100.
    ObjectType_System = 100
    # 常量 机构风采标识 = 1 .
    ObjectId_School = 1

    def __init__(self):
        self.link_svc = __spring__.getBean("linkService")
        self.params = ParamUtil(request)

        return

    # 执行请求.
    def execute(self):
        #print "hello, admin_school_link is executed"

        # 必须要求登录和具有管理权限.
        if self.loginUser == None: return ActionResult.LOGIN
        if self.canAdmin() == False:
            self.addActionError(u"没有管理机构链接的权限.")
            return ActionResult.ERROR

        cmd = self.params.safeGetStringParam("cmd")
        if cmd == "" or cmd == None:
            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()
        else:
            self.addActionError(u"未知命令参数 : " + cmd)
            return ActionResult.ERROR

    # 按照分页列出链接.
    def list(self):
        pager = self.params.createPager()
        pager.itemName = u"机构链接"
        pager.itemUnit = u"个"

        # 计算总数.
        hql = """ SELECT COUNT(*) FROM Link 
         WHERE objectType = :objectType AND objectId = :objectId """
        cmd = Command(hql)
        cmd.setInteger("objectType", self.ObjectType_System)
        cmd.setInteger("objectId", self.ObjectId_School)
        pager.totalRows = cmd.int_scalar()

        # 获取当前页.
        hql = """ FROM Link 
         WHERE objectType = :objectType AND objectId = :objectId 
         ORDER BY linkId DESC """
        cmd = Command(hql)
        cmd.setInteger("objectType", self.ObjectType_System)
        cmd.setInteger("objectId", self.ObjectId_School)
        link_list = cmd.open(pager)

        request.setAttribute("link_list", link_list)
        request.setAttribute("pager", pager)

        #DEBUG: print "link_list = ", link_list
        return "/WEB-INF/ftl/admin/school_link_list.ftl"

    # 增加一个链接.
    def add(self):
        link = Link()
        link.linkAddress = "http://"
        link.linkType = 1
        request.setAttribute("link", link)

        return "/WEB-INF/ftl/admin/school_link_add.ftl"

    # 编辑一个现有链接.
    def edit(self):
        linkId = self.params.getIntParam("linkId")
        link = self.link_svc.getLinkById(linkId)
        if link == None:
            self.addActionError(u"无法找到指定标识的机构风采链接对象")
            return ActionResult.ERROR

        request.setAttribute("link", link)

        return "/WEB-INF/ftl/admin/school_link_add.ftl"

    # 保存链接.
    def save(self):
        link = self.collect()

        self.link_svc.saveLink(link)

        self.addActionMessage(u"保存链接 " + link.toDisplayString() + u"成功完成")

        return ActionResult.SUCCESS

    def delete(self):
        ids = self.params.getIdList("linkId")
        if ids == None or ids.size() == 0:
            self.addActionError(u"未选择任何要操作的链接")
            return ActionResult.ERROR

        oper_count = 0
        for linkId in ids:
            # 得到链接对象.
            link = self.link_svc.getLinkById(linkId)
            if link == None:
                self.addActionMessage(u"未能找到指定标识为 " + str(linkId) + u" 的机构链接")
                continue

            # TODO: 验证权限.

            # 实施删除.
            self.link_svc.deleteLink(link)
            self.addActionMessage(u"链接 " + link.toDisplayString() + u" 已经成功删除")
            oper_count += 1

        self.addActionMessage(u"共删除了 " + str(oper_count) + u" 个链接")

        return ActionResult.SUCCESS

    # 从页面提交参数收集 Link 对象.
    def collect(self):
        link = Link()
        link.linkId = self.params.getIntParam("linkId")
        # link.objectType = self.params.getIntParam("objectType")
        link.objectType = self.ObjectType_System
        # link.objectId = self.params.getIntParam("objectId")
        link.objectId = self.ObjectId_School
        link.title = self.params.getStringParam("title")
        link.linkAddress = self.params.getStringParam("linkAddress")
        link.linkType = self.params.getIntParam("linkType")
        link.description = self.params.getStringParam("description")
        link.linkIcon = self.params.getStringParam("linkIcon")
        return link