项目软件
- 2010-05-20 17:10:27
- 王春生 原创
- 115704
一、什么是项目软件?
是一款国产的开源项目软件。它集产品、项目、质量、文档、组织和事务于一体,是一款专业的研发项目软件,完整地覆盖了项目的核心流程。思想注重实效,软件架构合理,操作简洁高效,代码实现合理,内置灵活的扩展机制和api调用机制,支持多语言。
二、为什么用“”这个名字?
禅和道是中国文化中极具代表意义的两个字,是中国传统文化的结晶。我们之所以选用“”作为我们软件的名字,是希望通过这两个字来传达我们对的理解和思考。我们希望通过来进行的,可以摒弃繁文缛节,还原的本质!
三、的设计理念
项目软件的主要思想基于国际流行的敏捷项目方式——Scrum。scrum是一种注重实效的敏捷项目方式。它规定了核心的框架,但具体的细节还需要团队自行扩充。在遵循其方式基础上,又融入了国内研发现状的很多需求,比如bug,测试用例,发布,文档等。因此不仅仅是一款scrum敏捷项目工具,更是一款完备的项目软件。基于scrum,又不局限于scrum。
还首次创造性的将产品、项目、测试这三者的概念明确分开,互相配合,又互相制约,通过需求、任务、bug来进行交相互动,终通过项目拿到合格的产品。
四、选择的八大理由:
1. 开源的软件,保证了您使用的放心和灵活。2. 先进的思想,让您在竞争中拔得头筹。
3. 完备的功能,无需再整合其他多个系统。
4. 国产软件,中文支持,操作习惯更符合国人。
5. 灵活的扩展机制,可以保证您不局限于自身的功能。
6. 日趋完善的社区机制,可以获得及时的技术支持和帮助,保证您无后顾之忧。
7. 几乎为零的投入,作为开源软件,其投入几乎为零,相比动辄十几万的商业软件,您选择没有任何风险。
8. 开发团队已经公司化运作,保证软件的持久发展。我们从04年从事开源软件开发以来,已经坚持了六年。
五、的功能列表:
1. 产品:包括产品、需求、计划、发布、路线图等功能。
2. 项目:包括项目、任务、团队、build、燃尽图等功能。
3. 质量:包括bug、测试用例、测试任务、测试结果等功能。
4. 文档:包括产品文档库、项目文档库、自定义文档库等功能。
5. 事务:包括todo,我的任务、我的Bug、我的需求、我的项目等个人事务功能。
6. 组织:包括部门、用户、分组、权限等功能。
7. 统计功能:丰富的统计表。
8. 搜索功能:强大的搜索,帮助您找到相应的数据。
9. 灵活的扩展机制,几乎可以对的任何地方进行扩展。
10. 强大的api机制,方便与其他系统集成。
也许您已经"众里寻她千百度",那么让带给您“蓦然回首,那人却在灯火阑珊处”的惊喜吧!Let's zentao!
我们在使用过程中看到了多人指派的功能,但是我指派多人的时候,只有一个被指派人显示出来了。,请问这是设置w88还是什么别的原因
1、今天登录后,在项目——BUG界面底部多处一些代码:
$(document).ready(function() { $('.assign-search').click(function(e) { e.stopPropagation(); return false; }).on('keyup change paste', 'input', function() { var val = $(this).val().toLowerCase(); if(val == '') return $('.assign-menu > .option').removeClass('hide'); $('.assign-menu > .option').each(function() { var $option = $(this); $option.toggleClass('hide', $option.text().toString().toLowerCase().indexOf(val) < 0 && $option.data('key').toString().toLowerCase().indexOf(val) < 0); }); }); fixedTfootAction('#projectBugForm'); });
2、进入到“提BUG”页面,页面又是一堆代码:
/** * Load all users as assignedTo list. * * @access public * @return void */ function loadAllUsers() { link = createLink('bug', 'ajaxLoadAllUsers', 'selectedUser=' + $('#assignedTo').val()); $('#assignedToBox').load(link, function(){$('#assignedTo').chosen(defaultChosenOptions);}); } /** * Load team members of the latest project of a product as assignedTo list. * * @param $productID * @access public * @return void */ function loadProjectTeamMembers(productID) { link = createLink('bug', 'ajaxLoadProjectTeamMembers', 'productID=' + productID + '&selectedUser=' + $('#assignedTo').val()); $('#assignedToBox').load(link, function(){$('#assignedTo').chosen(defaultChosenOptions);}); } /** * load assignedTo and stories of module. * * @access public * @return void */ function loadModuleRelated() { moduleID = $('#module').val(); productID = $('#product').val(); setAssignedTo(moduleID, productID); setStories(moduleID, productID); } /** * Set the assignedTo field. * * @access public * @return void */ function setAssignedTo(moduleID, productID) { if(typeof(productID) == 'undefined') productID = $('#product').val(); if(typeof(moduleID) == 'undefined') moduleID = $('#module').val(); link = createLink('bug', 'ajaxGetModuleOwner', 'moduleID=' + moduleID + '&productID=' + productID); $.get(link, function(owner) { $('#assignedTo').val(owner); $("#assignedTo").trigger("chosen:updated"); }); } $(function() { if($('#project').val()) loadProjectRelated($('#project').val()); $('#saveTplBtn').on('click', function() { var content = $('#steps').val(); bootbox.prompt(setTemplateTitle, function(r) { if(!r || !content) return; saveTemplateLink = createLink('bug', 'saveTemplate'); $.post(saveTemplateLink, {title:r, content:content}, function(data) { $('#tplBox').html(data); }); }); }); }); // /* Save template. */ // KindEditor.plugin('savetemplate', function(K) // { // var self = this, name = 'savetemplate'; // self.plugin.savetemplate = // { // click: function(id) // { // content = self.html(); // bootbox.prompt(setTemplateTitle, function(r) // { // if(!r || !content) return; // saveTemplateLink = createLink('bug', 'saveTemplate'); // $.post(saveTemplateLink, {title:r, content:content}, function(data) // { // $('#tplBox').html(data); // }); // }); // } // }; // self.clickToolbar(name, self.plugin.savetemplate.click); // }); /* Set template. */ function setTemplate(templateID) { $('#tplBox .list-group-item.active').removeClass('active'); $('#tplTitleBox' + templateID).closest('.list-group-item').addClass('active'); steps = $('#template' + templateID).html(); editor['#'].html(steps); } /* Delete template. */ function deleteTemplate(templateID) { if(!templateID) return; hiddenwin.location.href = createLink('bug', 'deleteTemplate', 'templateID=' + templateID); $('#tplBox' + templateID).addClass('hidden'); }
3、填好BUG内容提交后,弹出页面显示:
{"result":"fail","message":{"openedBuild":["\u300e\u5f71\u54cd\u7248\u672c\u300f\u4e0d\u80fd\u4e3a\u7a7a\u3002"]}}
请问是什么原因,该如何解决,谢谢答复!!
该如何解决呢?
2. 我们升级也是为了给用户提供更好的功能,解决之前的bug。
如果你是自己部署的,你可以选择不升级。不要那么多的抱怨。