與TRAC v測試1.0如何顯示僅由任何權限可用的項目在TRAC simplemultiproject環境
我偶然與用戶所看到的項目,他們沒有獲得。我不希望他們只在這些項目上看到「沒有權限」,我只是想在用戶沒有權限查看項目時完全隱藏它。
這是一個q'n'd「解決方案」,只需將兩行代碼移動到另一個地方即可。 如果你們中有些人需要它,只需按如下所示更改它。
替換:
for project_name in sorted(projects.keys()):
has_access = True
can_show = True
if (project_name == "--None Project--"):
div_project = '<br><div id="project"><fieldset><legend><h2>Unbenanntes Projekt</h2></legend>'
else:
project_info = self.__SmpModel.get_project_info(project_name)
if project_info:
if hide_closed and project_info[4] > 0: # column 4 of table smp_project tells if project is closed
can_show = False
if self.__SmpModel.is_not_in_restricted_users(req.authname, project_info):
has_access = False
div_project = '<br><div id="project"><fieldset><legend><b>Projekt </b> <em style="font-size: 12pt; color: black;">%s</em></legend>' % project_name
if can_show and has_access and project_info and show_proj_descr:
div_project = div_project + '<div class="description" xml:space="preserve">'
if project_info[2]:
div_project = div_project + '%s<br/><br/>' % project_info[2]
div_project = div_project + '%s</div>' % wiki_to_html(project_info[3], self.env, req)
div_milestone = ''
if can_show and len(projects[project_name]) > 0:
if has_access:
for milestone in projects[project_name]:
mi = '<em>%s</em>' % milestone
for i in range(len(div_milestones_array)):
if(div_milestones_array[i].find(mi)>0):
div_milestone = div_milestone + div_milestones_array[i]
else:
div_milestone = '<em style="color: red;">no permission</em>'
div_project = div_project + to_unicode(div_milestone) + '</fieldset></div>'
div_projects_milestones = to_unicode(div_projects_milestones + div_project)
stream_div_projects_milestones = HTML(div_projects_milestones)
return stream_div_projects_milestones
有:
for project_name in sorted(projects.keys()):
has_access = True
can_show = True
project_info = self.__SmpModel.get_project_info(project_name)
if self.__SmpModel.is_not_in_restricted_users(req.authname, project_info):
has_access = False
if has_access:
if (project_name == "--None Project--"):
div_project = '<br><div id="project"><fieldset><legend><h2>Unbenanntes Projekt</h2></legend>'
else:
if project_info:
if hide_closed and project_info[4] > 0: # column 4 of table smp_project tells if project is closed
can_show = False
div_project = '<br><div id="project"><fieldset><legend><b>Projekt </b> <em style="font-size: 12pt; color: black;">%s</em></legend>' % project_name
if can_show and has_access and project_info and show_proj_descr:
div_project = div_project + '<div class="description" xml:space="preserve">'
if project_info[2]:
div_project = div_project + '%s<br/><br/>' % project_info[2]
div_project = div_project + '%s</div>' % wiki_to_html(project_info[3], self.env, req)
div_milestone = ''
if can_show and len(projects[project_name]) > 0:
if has_access:
for milestone in projects[project_name]:
mi = '<em>%s</em>' % milestone
for i in range(len(div_milestones_array)):
if(div_milestones_array[i].find(mi)>0):
div_milestone = div_milestone + div_milestones_array[i]
else:
div_milestone = '<em style="color: red;">no permission</em>'
div_project = div_project + to_unicode(div_milestone) + '</fieldset></div>'
div_projects_milestones = to_unicode(div_projects_milestones + div_project)
stream_div_projects_milestones = HTML(div_projects_milestones)
return stream_div_projects_milestones
在simplemultiproject/roadmap.py
重新啓動Apache Web服務器,你會看到不僅是項目必須接取。
雖然您的修改可能有用,但我猜你的問題的格式不是最適合此網站的格式。您甚至可以將您的解決方案作爲答案發布並接受它,但「理想」將成爲引發問題的問題(例如:用戶能夠查看他們無法訪問的項目)以及提供解決方案的答案它(你的修改,讓他們看到他們有什麼權限)。 – Claudio
恩,後面我會想一想。但是,謝謝你的建議。 如果我認識你,你的意思是在兩個單獨的帖子中提問和回答,對吧? – Thyrador
是的..本網站旨在作爲問題和答案論壇。同樣,你從一個其他人可能幫助你解決的問題開始。然後他們可能會通過評論您的問題向您詢問更多詳細信息,如果他們有解決方案建議,他們會在「您的答案」框中發佈答案。如果你自己也得到了答案,你也可以這樣做,這個問題可能對於那些想要解決你最初遇到的同樣問題的人有用。 – Claudio