def list_projects(request): reg_projects = RegisteredProjects() project_list = list() errors = list() for project in reg_projects.get_list(): try: project['id'] = int(project['id']) project['status_cls'] = map_text_cls(project['status']) project['location'] = project['path'] if len(project['location']) > MAX_LOCATION_CHARS: project['location'] = '...' + \ project['location'][MAX_LOCATION_CHARS - 3:] except BrainyProjectError as project_error: # Report error endowed with the project. errors.append({ 'msg': str(project_error), 'project': project, }) continue project_list.append(project) context = { 'error_list': errors, 'project_list': project_list, } return render(request, 'projects/list.tpl', context)
def details(request, project_id): project_id = int(project_id) errors = list() project = None reg_projects = RegisteredProjects() # Get project try: project = reg_projects.find_project(project_id) except BrainyProjectError as project_error: errors.append({ 'msg': str(), 'project': project, }) # Get project's tasks if project is not None: try: task_tree = reg_projects.get_task_tree(project['path']) project = { 'name': project['name'], 'path': project['path'], 'task_tree': task_tree, } except BrainyProjectError as project_error: # Report error endowed with the project. errors.append({ 'msg': str(project_error), 'project': project, }) context = { 'error_list': errors, 'project': project, } return render(request, 'projects/details.tpl', context)