def coordinator(request): query = request.POST.get('query') if not query: return HttpResponse(json.dumps([]), mimetype='application/json') project_list = (Project.get(uuid) for uuid in Project.list()) result = [ p.manager for p in project_list if re.search(query, p.manager, re.IGNORECASE) ] return HttpResponse(json.dumps(result), mimetype='application/json')
def projects(request): project_list = (Project.get(uuid) for uuid in Project.list()) context = {} for p in project_list: cluster = p.cluster or 'Unknown' if context.get(cluster) == None: context[cluster] = [] context[cluster].append({ 'uuid': p._uuid, 'name': p.name, 'description': p.description, 'contract': p.contract }) return TemplateResponse(request, 'entry/list.html', {'projects': context})
def projects_json(request): project_list = (Project.get(uuid) for uuid in Project.list()) projects = [{ 'uuid': p._uuid, 'name': p.name, 'description': p.description, 'contract': p.contract, 'cluster': p.cluster, 'municipality': p.municipality, 'programme': p.programme, 'phase': (p.phase or '').title(), 'year': p.fyear } for p in project_list] years = set((i['year'] for i in projects)) result = [{ 'year': year, 'projects': [p for p in projects if p['year'] == year] } for year in years] return HttpResponse(json.dumps(projects), mimetype='application/json')
def new(request): year = datetime.today().year month = datetime.today().month if month < 3: year -= 1 details = { 'planning': [ { 'expenditure': None, 'progress': None, 'date': '%04d-04-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-05-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-06-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-07-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-08-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-09-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-10-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-11-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-12-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-01-01T00:00:00' % (year+1) }, { 'expenditure': None, 'progress': None, 'date': '%04d-02-01T00:00:00' % (year+1) }, { 'expenditure': None, 'progress': None, 'date': '%04d-03-01T00:00:00' % (year+1) }, ], 'actual': [ { 'expenditure': None, 'progress': None, 'date': '%04d-04-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-05-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-06-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-07-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-08-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-09-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-10-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-11-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-12-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-01-01T00:00:00' % (year+1) }, { 'expenditure': None, 'progress': None, 'date': '%04d-02-01T00:00:00' % (year+1) }, { 'expenditure': None, 'progress': None, 'date': '%04d-03-01T00:00:00' % (year+1) }, ] } project = Project(details) project.edit = True project.save() return redirect('entry:edit', project_id=project._uuid)
def handle(self, *args, **options): base_url = os.getenv('BASE_URL', settings.BASE_URL) for c in self.clusters: cluster = generate_cluster_dashboard_v2('department-of-%s' % c) for programme in cluster['programmes']: if programme['title']: programme_id = '%s:%s' % (c, slugify(unicode(programme['title']))) body = { 'id': 'programme:%s' % programme_id, 'title': programme['title'], 'url': '/#/projects/%s/%s' % (c, programme['title']), 'cluster': cluster['client'], 'cluster_id': c, } es.index(index='pmis', doc_type='programme', id=programme_id, body=body) for project_id in Project.list(): if project_id: project = Project.get(project_id, as_json=True) body = { 'id': 'project:%s' % project_id, 'title': project['description'], 'url': '%s/reports/project/%s/latest/' % (base_url, project_id), 'cluster': cluster['client'], 'cluster_id': c, # 'manager': project.get('manager'), # 'municipality': project.get('municipality'), # 'comments': project.get('comments'), 'programme': project.get('programme'), 'programme_id': slugify(project.get('programme', u'')), } es.index(index='pmis', doc_type='project', id=project_id, body=body)
def insertProject(details): project = Project(details) project.save()
Loop through the cells in the heading row, looking for the fields we are interested in (by using a lambda) """ headings = getHeadingRow(sheet) columnsOfInterest = {} for fieldName, lambdas in fieldsOfInterest.iteritems(): for column, cell in enumerate(headings): if lambdas[0](cell): columnsOfInterest[fieldName] = column break return columnsOfInterest projects = [] project_ids = Project.list() for project_id in project_ids: project = Project.get(project_id) projects.append(project) print '%s projects found' % len(projects) def projectExists(project): for p in projects: if (project['cluster'] == p.cluster and project.get('name') == p.name and project['district'] == p.district and project['municipality'] == p.municipality): return True return False
def edit(request, project_id): project = Project.edit(project_id) # Check actual and planned monthly entries. Add any required to # get to this financial year. current = datetime.today() for m in range(3, 15): year = current.year if current.month < 3: year -= 1 if project.actual == '': project._details['actual'] = [ { 'expenditure': None, 'progress': None, 'date': '%04d-04-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-05-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-06-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-07-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-08-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-09-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-10-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-11-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-12-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-01-01T00:00:00' % (year+1) }, { 'expenditure': None, 'progress': None, 'date': '%04d-02-01T00:00:00' % (year+1) }, { 'expenditure': None, 'progress': None, 'date': '%04d-03-01T00:00:00' % (year+1) }, ] if project.planning == '': project._details['planning'] = [ { 'expenditure': None, 'progress': None, 'date': '%04d-04-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-05-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-06-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-07-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-08-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-09-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-10-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-11-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-12-01T00:00:00' % (year) }, { 'expenditure': None, 'progress': None, 'date': '%04d-01-01T00:00:00' % (year+1) }, { 'expenditure': None, 'progress': None, 'date': '%04d-02-01T00:00:00' % (year+1) }, { 'expenditure': None, 'progress': None, 'date': '%04d-03-01T00:00:00' % (year+1) }, ] year += m/12 month = m%12 + 1 _find_or_add_month(project.actual, year, month) _find_or_add_month(project.planning, year, month) if request.method == 'POST': for key, value in request.POST.items(): if key == '__reset': project.clear() project = Project.edit(project_id) elif key == '__save': project.edit = False elif key == 'csrfmiddlewaretoken': pass else: keys = key.split('.') if len(keys) == 1: project._details[keys[0]] = value else: keys.reverse() d = project._details while len(keys) > 1: k = keys.pop() if type(d) == type({}): d = d.get(k) elif type(d) == type([]): d = d[int(k)] else: pass d[keys[0]] = value project._details['last_modified_user'] = request.user.username if request.user.is_authenticated() else '' project._details['last_modified_time'] = datetime.now().isoformat() project.save() return HttpResponse(json.dumps(project._details), mimetype='application/json') project._details['__project_url'] = reverse('reports:project', kwargs={ 'project_id': project._uuid }) context = { 'data': json.dumps(project._details), 'clusters': Cluster.objects.all(), 'implementing_agents': ImplementingAgent.objects.all() } return TemplateResponse(request, 'entry/project.html', context)