def put(self, project_id): data = json.loads(self.request.body) project = Project.get(project_id) project.name = data.get('name') project.note = data.get('note') project.put() self.response.write(json.dumps(project.to_dict()))
def get(self, project_id): project = Project.get(project_id) collaborators = Collaborator.all()\ .filter('project =', project) content = json.dumps([ c.to_dict() for c in collaborators if c.project.deleted_at is None ]) self.response.write(content)
def post(self, project_id): data = json.loads(self.request.body) project = Project.get(project_id) participant = Participant(name=data.get('name'), note=data.get('note'), project=project, json=DEFAULT_JSON) participant.put() self.response.write(json.dumps(participant.to_dict()))
def post(self, project_id): data = json.loads(self.request.body) project = Project.get(project_id) participant = Participant( name=data.get('name'), note=data.get('note'), project=project, json=DEFAULT_JSON) participant.put() self.response.write(json.dumps(participant.to_dict()))
def get(self, project_id, participant_id=None): if participant_id: participant = Participant.get(participant_id) if participant.deleted_at is not None: self.error(404) self.response.write(json.dumps(participant.to_dict())) else: project = Project.get(project_id) participants = Participant.all()\ .filter('project =', project)\ .order('created_at') self.response.write(json.dumps([p.to_dict() for p in participants]))
def post(self, project_id): data = json.loads(self.request.body) project = Project.get(project_id) participants = Participant.all().filter('project =', project) grid = merge_grids(participants) questionnaire = [node['text'] for node in grid['nodes']] analysis = Analysis( name=data.get('name'), grid=json.dumps(grid), questionnaire=json.dumps(questionnaire), project=project) analysis.put() self.response.write(json.dumps(analysis.to_dict()))
def get(self, project_id): """ Get a single project :param project_id: :return: Project object """ user = get_jwt_identity() schema = ProjectSchema() project = Project.get(project_id) if project is None: raise ValidationError({'message': 'Project not found'}) project = schema.dump(project).data return response('success', success_messages['retrieved'].format('Project'), project)
def get(self, project_id=None): current_user = User.current_user() if project_id: project = Project.get(project_id) if project.deleted_at is not None: self.error(404) if not current_user.is_collaborator_on(project): self.error(403) self.response.write(json.dumps(project.to_dict())) else: collaborators = Collaborator.all()\ .filter('user =', current_user) projects = [c.project for c in collaborators if c.project.deleted_at is None] projects.sort(key=lambda a: a.updated_at) content = json.dumps([p.to_dict() for p in projects]) self.response.write(content)
def post(self, project_id): data = json.loads(self.request.body) project = Project.get(project_id) user = User.all()\ .filter('email =', data.get('userEmail'))\ .get() if not project or not user: raise Exception() collaborator = Collaborator.all()\ .filter('project =', project)\ .filter('user ='******'isManager')) collaborator.put() content = json.dumps(collaborator.to_dict()) self.response.write(content)
def patch(self, project_id): """ Endpoint to update project""" request_data = request.get_json() user = get_jwt_identity() project = Project.get(project_id) if user.get('id') != project.created_by: raise ValidationError({ 'message': 'Unauthorized user, you cannot perform this operation' }) schema = ProjectSchema(context={'id': project_id}) if 'assignees' in request_data: user_list = assign_user(request_data.get('assignees')) assignees = user_list if user_list is not None else [] del request_data['assignees'] data = schema.load_object_into_schema(request_data, partial=True) data['assignees'] = assignees else: data = schema.load_object_into_schema(request_data, partial=True) project.update_(**data) return response('success', message=success_messages['updated'].format('Project'), data=schema.dump(project).data, status_code=200)
def get(self, project_id): project = Project.get(project_id) participants = Participant.all().filter('project =', project) self.response.write(json.dumps(merge_grids(participants)))
def get(self, request, pk=None): asker = UserProfile.get(request) if pk: project = Project.objects.filter(pk=pk).first() if project: if not project.user and project.creator != asker and not project.is_series: ProjectShowing.objects.get_or_create(project_id=pk, user=asker, **request.data) page = project.page(asker) if page: return Response(page) result = { 'project': { 'id': None, 'title': None, 'days': {}, 'money': None, 'money_calculating': False, 'money_per_day': None, 'client': None, 'user': None, 'creator': ProfileItemShortSerializer(asker).data, 'canceled': None, 'is_paid': False, 'is_wait': True, 'info': None, 'parent': None, 'confirmed': False, 'is_series': False }, 'calendar': { 'days': {}, 'daysOff': [] } } user = UserProfile.get(request.GET.get('user')) series = Project.get(request.GET.get('series')) copy = Project.get(request.GET.get('copy')) if series: user = series.user series_fields = SeriesFillingSerializer(series).data result['project'].update(series_fields) result['project'].update({ 'is_series': False, 'parent': ProjectListItemSerializer(series).data }) if user: result['project'].update({ 'user': ProfileItemShortSerializer(user).data, 'is_wait': user != asker, 'confirmed': user == asker }) result['calendar'] = user.get_calendar(asker) if copy: page = copy.page(asker) if page: page['project']['id'] = None return Response(page) return Response(result)
def get(self, project_id): project = Project.get(project_id) analyses = Analysis.all()\ .filter('project =', project)\ .order('created_at') self.response.write(json.dumps([p.to_dict() for p in analyses]))
def delete(self, project_id): project = Project.get(project_id) project.remove()
def get(self, project_id): project = Project.get(project_id) collaborators = Collaborator.all()\ .filter('project =', project) content = json.dumps([c.to_dict() for c in collaborators if c.project.deleted_at is None]) self.response.write(content)