예제 #1
0
    def save(self):
        # 得到页面的 unitId,如果出现网络问题或从地址栏非法输入而获得失败的,则提示'未找到...'
        unitId = self.params.safeGetIntParam("unitId", 0)

        if unitId > 0:
            # 根据'unitId'获得其对应的机构对象.
            unit = self.unitService.findUnitById(unitId)
        else:
            unit = Unit()

        # 设置新的数据.
        self.setUnit(unit)

        #检查是否存在同名的机构
        unitTemp = self.unitService.getAllUnitOrChildUnitList(None)
        if self.checkExistUnit(unitTemp, unit) == True:
            self.addActionError(u"同名的机构已经存在")
            return ActionResult.ERROR

        # 保存
        self.unitService.saveOrUpdateUnit(unit)

        # 添加导航
        #print "unitId", unitId
        if unitId < 1:
            siteNameArray = [
                u"总站首页", u"机构首页", u"机构文章", u"机构资源", u"机构图片", u"机构视频", u"机构工作室"
            ]
            siteUrlArray = [
                "py/subjectHome.action", "", "article/", "resource/", "photo/",
                "video/", "blog/"
            ]
            siteHightlightArray = [
                "index", "unit", "unit_article", "unit_resource", "unit_photo",
                "unit_video", "unit_user"
            ]
            siteNavService = __spring__.getBean("siteNavService")
            for i in range(0, len(siteNameArray)):
                #先判断是否存在
                siteNav = siteNavService.getSiteNavByName(
                    SiteNav.SITENAV_OWNERTYPE_UNIT, unit.unitId,
                    siteNameArray[i])
                if siteNav == None:
                    siteNav = SiteNav()
                    siteNav.setSiteNavName(siteNameArray[i])
                    siteNav.setIsExternalLink(False)
                    siteNav.setSiteNavUrl(siteUrlArray[i])
                    siteNav.setSiteNavIsShow(True)
                    siteNav.setSiteNavItemOrder(i)
                    siteNav.setCurrentNav(siteHightlightArray[i])
                    siteNav.setOwnerType(SiteNav.SITENAV_OWNERTYPE_UNIT)
                    siteNav.setOwnerId(unit.unitId)
                    siteNavService.saveOrUpdateSiteNav(siteNav)

        # 返回.
        self.addActionLink(u"返回", "javascript:history.go(-1)")
        self.addActionLink(u"机构管理", "?cmd=list")
        return ActionResult.SUCCESS
예제 #2
0
    def edit(self):
        unitId = self.params.getIntParam("unitId")
        if unitId == 0:
            unit = Unit()
        else:
            unit = self.unitService.findUnitById(unitId)
        # 传递给页面对象.
        request.setAttribute("unit", unit)

        # 返回跳转.
        return self.UNIT_EDIT
예제 #3
0
    def execute(self):
        parentId = self.params.safeGetIntParam("pid")
        unitId = self.params.safeGetIntParam("unitId")
        parentUnit = self.unitService.getUnitById(parentId)
        if parentUnit == None:
            self.addActionError(u"无效的父节点。")
            self.addActionLink(
                u"返回", "admin_edit_unit.py?pid=" + str(parentId) + "&unitId=" +
                str(unitId))
            return ActionResult.ERROR

        unitLevel = self.unitService.getUnitDeepLevel(parentUnit)
        if unitLevel > self.unitService.getConfigUnitLevel():
            self.addActionError(u"不允许创建更多的子单位。")
            self.addActionLink(u"返回", "admin_unit_manage.py")
            return ActionResult.ERROR
        unit = self.unitService.getUnitById(unitId)

        unitTypeList = self.unitTypeService.getUnitTypeNameList()
        request.setAttribute("unitTypeList", unitTypeList)

        if request.getMethod() == "POST":
            title = self.params.safeGetStringParam("title")
            enname = self.params.safeGetStringParam("enname")
            siteTitle = self.params.safeGetStringParam("siteTitle")
            unitType = self.params.safeGetStringParam("unitType")
            if enname == "" or title == "":
                self.addActionError(u"机构名称和英文名称不能为空。")
                self.addActionLink(
                    u"返回", "admin_edit_unit.py?pid=" + str(parentId) +
                    "&unitId=" + str(unitId))
                return ActionResult.ERROR
            if unitType == "":
                self.addActionError(u"机构属性不能为空。")
                self.addActionLink(
                    u"返回", "admin_edit_unit.py?pid=" + str(parentId) +
                    "&unitId=" + str(unitId))
                return ActionResult.ERROR
            if siteTitle == "":
                self.addActionError(u"机构网站名称不能为空。")
                self.addActionLink(
                    u"返回", "admin_edit_unit.py?pid=" + str(parentId) +
                    "&unitId=" + str(unitId))
                return ActionResult.ERROR
            if CommonUtil.isValidName(enname) == False:
                self.addActionError(u"英文名称只能是英文字母、数字并且必须以英文字母开头。")
                self.addActionLink(
                    u"返回", "admin_edit_unit.py?pid=" + str(parentId) +
                    "&unitId=" + str(unitId))
                return ActionResult.ERROR
            #检查英文名称是否已经存在
            checkUnit = self.unitService.getUnitByName(enname)
            if checkUnit != None:
                if unit == None:
                    #新建的机构
                    self.addActionError(u"机构的英文名称已经存在,请更换一个新的名称。")
                    self.addActionLink(
                        u"返回", "admin_edit_unit.py?pid=" + str(parentId) +
                        "&unitId=" + str(unitId))
                    return ActionResult.ERROR
                else:
                    if checkUnit.unitId != unit.unitId:
                        self.addActionError(u"机构的英文名称已经存在,请更换一个新的名称。")
                        self.addActionLink(
                            u"返回", "admin_edit_unit.py?pid=" + str(parentId) +
                            "&unitId=" + str(unitId))
                        return ActionResult.ERROR

            if unit == None:
                unit = Unit()
                unit.setParentId(parentUnit.unitId)
                unit.setUnitPathInfo("")
                unit.setHasChild(False)
            unit.setUnitName(enname)
            unit.setUnitTitle(title)
            unit.setSiteTitle(siteTitle)
            unit.setUnitType(unitType)
            self.unitService.saveOrUpdateUnit(unit)
            if parentUnit.hasChild == False:
                parentUnit.setHasChild(True)
                self.unitService.saveOrUpdateUnit(parentUnit)
            if unitId == 0:
                self.init_unit_nav(unit)
                self.genWebparts(unit)
            request.setAttribute("parentUnit", parentUnit)
            self.unitService.updateAccessControlUnitTitle(unit)
            return "/WEB-INF/ftl/admin/admin_edit_unit_success.ftl"

        request.setAttribute("parentUnit", parentUnit)
        request.setAttribute("unit", unit)
        return "/WEB-INF/ftl/admin/admin_edit_unit.ftl"
예제 #4
0
    def execute(self):
        #检查是否 存在根节点
        unitList = self.unitService.getChildUnitListByParenId(0, [False])
        if len(unitList) > 0:
            self.addActionError(u"根节点已经存在,只能有一个根节点。")
            return ActionResult.ERROR

        if request.getMethod() == "POST":
            enname = self.params.safeGetStringParam("enname")
            title = self.params.safeGetStringParam("title")
            siteTitle = self.params.safeGetStringParam("siteTitle")
            if enname == "" or title == "":
                self.addActionError(u"机构名称和英文名称不能为空。")
                return ActionResult.ERROR
            if siteTitle == "":
                self.addActionError(u"机构网站名称不能为空。")
                return ActionResult.ERROR
            if CommonUtil.isValidName(enname) == False:
                self.addActionError(u"英文名称只能是英文字母、数字并且必须以英文字母开头。")
                return ActionResult.ERROR

            unit = Unit()
            unit.setUnitName(enname)
            unit.setUnitTitle(title)
            unit.setSiteTitle(siteTitle)
            unit.setParentId(0)
            unit.setUnitPathInfo("")
            unit.setHasChild(False)
            self.unitService.saveOrUpdateUnit(unit)
            unit.setUnitPathInfo("/" + str(unit.unitId) + "/")
            self.unitService.saveOrUpdateUnit(unit)

            # 将管理员添加到根机构中。
            userService = __spring__.getBean("userService")
            u = userService.getUserByLoginName("admin")
            if u != None:
                u.setUnitId(unit.unitId)
                u.setUnitPathInfo(unit.unitPathInfo)
                userService.updateUserUnit(u)

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

        return "/WEB-INF/ftl/admin/admin_add_unit_root.ftl"
예제 #5
0
    def execute(self):
        #检查是否 存在根节点,本程序将进行整个平台的初始化工作,
        rootUnit = self.unitService.getRootUnit()
        if rootUnit != None:
            self.addActionError(u"根机构已经存在,只能有一个根机构。")
            return ActionResult.ERROR

        unitList = self.unitService.getChildUnitListByParenId(0)
        if len(unitList) > 0:
            self.addActionError(u"组织机构表中已经存在单位,不能再添加,请检查组织机构表。")
            return ActionResult.ERROR

        if request.getMethod() == "POST":
            enname = self.params.safeGetStringParam("enname")
            title = self.params.safeGetStringParam("title")
            siteTitle = self.params.safeGetStringParam("siteTitle")
            if enname == "" or title == "":
                self.addActionError(u"机构名称、英文名称不能为空。")
                return ActionResult.ERROR
            if siteTitle == "":
                self.addActionError(u"机构网站名称不能为空。")
                return ActionResult.ERROR
            if CommonUtil.isValidName(enname) == False:
                self.addActionError(u"英文名称只能是英文字母、数字并且必须以英文字母开头。")
                return ActionResult.ERROR

            unit = Unit()
            unit.setUnitName(enname)
            unit.setUnitTitle(title)
            unit.setSiteTitle(siteTitle)
            unit.setParentId(0)
            unit.setUnitPathInfo("")
            unit.setHasChild(False)
            self.unitService.saveOrUpdateUnit(unit)
            unit.setUnitPathInfo("/" + str(unit.unitId) + "/")
            self.unitService.saveOrUpdateUnit(unit)
            self.save_or_update_item("site.name", title)
            self.save_or_update_item("site.title", siteTitle)
            self.save_or_update_item("siteThemeUrl",
                                     request.getContextPath() + "/css/index/")

            self.configService.reloadConfig()

            # 将管理员添加到根机构中。
            userService = __spring__.getBean("userService")
            u = userService.getUserByLoginName("admin")
            if u != None:
                u.setUnitId(unit.unitId)
                u.setUnitPathInfo(unit.unitPathInfo)
                userService.updateUserUnit(u)

            #初始化一些内容,重新生成导航文件等
            self.GenSubjectNav()

            self.addActionMessage(u"设置成功。")
            self.addActionLink(u"返回首页", "index.py")
            self.addActionLink(u"返回其他配置页面", "checksetting.py")

            return ActionResult.SUCCESS
        else:
            try:
                self.clearAllStaticCacheFile()
            except:
                print u"系统初始化错误:删除静态文件时出现错误。"
        return "/WEB-INF/ftl/admin/admin_add_unit_root.ftl"