in Allura/allura/controllers/project.py [0:0]
def update(self, name=None, css=None, homepage=None, project_template=None, icon=None, **kw):
nbhd = self.neighborhood
c.project = nbhd.neighborhood_project
h.log_if_changed(nbhd, 'name', name,
'change neighborhood name to %s' % name)
nbhd_redirect = kw.pop('redirect', '')
h.log_if_changed(nbhd, 'redirect', nbhd_redirect,
'change neighborhood redirect to %s' % nbhd_redirect)
h.log_if_changed(nbhd, 'homepage', homepage,
'change neighborhood homepage to %s' % homepage)
h.log_if_changed(nbhd, 'css', css,
'change neighborhood css to %s' % css)
h.log_if_changed(nbhd, 'project_template', project_template,
'change neighborhood project template to %s'
% project_template)
allow_browse = kw.get('allow_browse', False)
h.log_if_changed(nbhd, 'allow_browse', allow_browse,
'change neighborhood allow browse to %s'
% allow_browse)
show_title = kw.get('show_title', False)
h.log_if_changed(nbhd, 'show_title', show_title,
'change neighborhood show title to %s' % show_title)
use_wiki_page_as_root = kw.get('use_wiki_page_as_root', False)
h.log_if_changed(nbhd, 'use_wiki_page_as_root', use_wiki_page_as_root,
'change use wiki page as root to %s' % use_wiki_page_as_root)
project_list_url = kw.get('project_list_url', '')
h.log_if_changed(nbhd, 'project_list_url', project_list_url,
'change neighborhood project list url to %s'
% project_list_url)
tracking_id = kw.get('tracking_id', '')
h.log_if_changed(nbhd, 'tracking_id', tracking_id,
'update neighborhood tracking_id')
prohibited_tools = kw.get('prohibited_tools', '')
result = True
if prohibited_tools.strip() != '':
for prohibited_tool in prohibited_tools.split(','):
if prohibited_tool.strip() not in g.entry_points['tool']:
flash('Prohibited tools "%s" is invalid' %
prohibited_tool.strip(), 'error')
result = False
if result:
h.log_if_changed(nbhd, 'prohibited_tools', prohibited_tools,
'update neighborhood prohibited tools')
anchored_tools = kw.get('anchored_tools', '')
validate_tools = dict()
result = True
if anchored_tools.strip() != '':
try:
validate_tools = {
tool.split(':')[0].lower(): tool.split(':')[1]
for tool in anchored_tools.replace(' ', '').split(',')}
except Exception:
flash('Anchored tools "%s" is invalid' %
anchored_tools, 'error')
result = False
for tool in validate_tools.keys():
if tool not in g.entry_points['tool']:
flash('Anchored tools "%s" is invalid' %
anchored_tools, 'error')
result = False
if result:
h.log_if_changed(nbhd, 'anchored_tools', anchored_tools,
'update neighborhood anchored tools')
if icon is not None and icon != b'':
if self.neighborhood.icon:
self.neighborhood.icon.delete()
M.ProjectFile.query.remove(dict(project_id=c.project._id, category={'$regex': r'^icon'}))
save_icon = c.project.save_icon(icon.filename, icon.file, content_type=icon.type)
if save_icon:
M.AuditLog.log('update neighborhood icon')
else:
M.AuditLog.log('could not update neighborhood icon')
flash("There's a problem with the uploaded image", 'error')
redirect('overview')