def test1_create_project(self): print Colorizer.LightPurple('\n[TEST project] should create a project') project = Project( title='Prova project', picture='images/profile/default_user_icon.png', details='Prova description' ) project.profile = self.user.profile project.save() self.assertTrue(Project.objects.get(title='Prova project'), Colorizer.Red('Create project Error'))
def load_project(data): for project in data: try: project_form = Project.objects.get(name=project) except Project.DoesNotExist: project_form = Project(name=project) project_form.save() for ds in data[project]: if ds != "meta": try: ds_form = DataSource.objects.get(parent=project, name=ds) except DataSource.DoesNotExist: ds_form = DataSource(parent=project, name=ds) ds_form.save() try: meta_title = data[project]["meta"]["title"] project_form.meta_title = meta_title project_form.save() except KeyError: pass for repo in data[project][ds]: try: repo_form = Repository.objects.get(parent=project, name=repo) except Repository.DoesNotExist: repo_form = Repository(parent=project, name=repo) repo_form.save() ds_form.repository.add(repo_form) ds_form.save() project_form.data_source.add(ds_form) project_form.save()
def addProject(request): # print "hello in project" if not request.user.is_authenticated( ) or not request.user.is_active == True: redirect("/auth/") if request.method == "POST": requestReceived = json.loads(request.POST.get("project")) json.dumps(requestReceived) projectName = requestReceived['projectName'] projectDescription = requestReceived['projectDescription'] skills = requestReceived['skills'] branches = requestReceived['branches'] projectImage = requestReceived['projectImage'] shortDesc = requestReceived['shortDesc'] skillList = [] print len(branches) for skillId in skills: skill = Skill.objects.get(id=skillId) skillList.append(skill) contributors = requestReceived['contributers'] contributorList = [] for username in contributors: user = User.objects.get(username=username) contributorList.append(user) currentTimeStamp = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M') project = Project(user=request.user, projectName=projectName, publishedDate=currentTimeStamp, projectDescription=projectDescription, skillList=skillList, contributorList=contributorList, branchList=branches ) #,shortDesc=shortDesc,projectImage=projectImage) project.save() return HttpResponse() else: users = User.objects.all() skills = Skill.objects.all() if request.user.is_authenticated(): return render( request, 'dashboard/addprojects.html', { 'skills': skills, 'users': users, 'username': request.user.username }) else: return redirect("/auth/")
def test_fetch_warning(): user = User.objects.create_user('a', '*****@*****.**', 'bob') user.first_name = "testf" user.last_name = "testf" user.save() email = EmailAddress(address='*****@*****.**', user=user) email.save() ease_blog = Blog(from_feed = False) ease_blog.save() ease_repo = Repository(web_url = "http://git.gnome.org/browse/ease", clone_url = "git://git.gnome.org/ease", from_feed = False) ease_repo.save() ease = Project(title = "Ease", description = "A presentation application for the Gnome Desktop.", website = "http://www.ease-project.org", wiki = "http://live.gnome.org/Ease", blog_id = ease_blog.id, repository_id = ease_repo.id) ease.save() ease.authors.add(user) ease.save() ease.do_warnings() assert ease.blog_warn_level > 0 assert ease.repo_warn_level > 0
def test2_add_project_contributor(self): print Colorizer.LightPurple('\n[TEST project] should add a contributor to project') project = Project( title='Prova project', picture='images/profile/default_user_icon.png', details='Prova description' ) project.profile = self.user.profile project.save() project.contributors.add(self.user.profile) project.save() new_project = Project.objects.get(title='Prova project') self.assertGreater(len(new_project.contributors.all()), 0, Colorizer.Red('Add contributor to project error'))
def test6_get_interested_from_project(self): print Colorizer.LightPurple('\n[TEST CHALLENGE] should return a list of profile interested in a project') project = Project( title='Prova project', picture='images/profile/default_user_icon.png', details='Prova description' ) project.profile = self.user.profile project.save() self.user.profile.add_interest(project) profiles = project.interested() self.assertTrue(all(isinstance(x, Profile) for x in profiles), Colorizer.Red('Challenge related interest are not a porofile list'))
def project(request, project_id=None): from dashboard.serializer import ProjectSerializer # DELETE PROJECT if request.method == 'DELETE' and project_id is not None: try: profile = request.user.profile projects = Project.objects.get(id=project_id, profile=profile) projects.delete() except ObjectDoesNotExist as e: print(e) print(not_authorized()) return success('ok', 'project deleted', {}) # GET ALL if request.method == 'GET' and project_id is None: try: profile = request.user.profile projects = Project.objects.filter(profile=profile) serialized = ProjectSerializer(projects, many=True) return success('ok', 'user projects', serialized.data) except Exception as e: print(e) return not_found() # GET SINGLE if request.method == 'GET' and project_id is not None: try: project = Project.objects.filter(id=project_id) serialized = ProjectSerializer(project, many=True) return success('ok', 'single project', serialized.data) except ObjectDoesNotExist as o: print(o) return not_found() except Exception as e: print(e) return error() # UPDATE if request.method == 'POST' and project_id is not None: data_to_update = {} data_to_update['name'] = request.POST.get('name', '') data_to_update['description'] = request.POST.get('description', '') data_to_update['start_date'] = request.POST.get('start_date', '') data_to_update['creator_role'] = request.POST.get( 'creator_role', '') data_to_update['project_url'] = request.POST.get('project_url', '') end_date = request.POST.get('end_date', '') # check if the image needs to be updated if request.POST.get('picture', None) != '': # image to be updated picture = request.FILES.get('picture') v13.check_image(picture) data_to_update['picture'] = picture # check if is or not an ongoing project try: if end_date != '': end_date = dt.strptime(end_date, '%Y-%m-%d') data_to_update['start_date'] = dt.strptime( data_to_update['start_date'], '%Y-%m-%d') # if end_date > dt.now(): # return bad_request('The project end_date cannot be in the future') if end_date < data_to_update['start_date']: return bad_request( 'The project end date cannot be before the project start date' ) data_to_update['end_date'] = end_date except Exception as e: print(e) return error() # get the model object and check the profile owns that project try: profile = request.user.profile project = Project.objects.filter(id=project_id, profile=profile).first() # clear and update tag project.set_tags(request.POST.get('tags', '')) # remove tag from data_to_update project.__dict__.update(data_to_update) project.save() except Project.DoesNotExist as e: print(e) return not_authorized() except Exception as e: print(e) return error() result = ProjectSerializer(project).data return success('ok', 'project updated', result) # CREATE if request.method == 'POST' and project_id is None: # check if fields are filled try: project_image = request.FILES.get('picture') project_name = request.POST['name'] project_description = request.POST['description'] project_start_date = dt.strptime(request.POST['start_date'], '%Y-%m-%d') project_creator_role = request.POST['creator_role'] project_url = request.POST['project_url'] project_tags = request.POST['tags'] # Check image is_image_ok = v13.check_image(project_image) if is_image_ok is not True: return is_image_ok except KeyError as k: print(k) return bad_request("Please fill all the fields") except Exception as e: return bad_request(e) # check if is or not an ongoing project try: project_end_date = dt.strptime(request.POST['end_date'], '%Y-%m-%d') except KeyError: project_end_date = None # if it is not an ongoing project check dates if project_end_date is not None: if project_end_date < project_start_date: return bad_request( 'The project END DATE cannot be before the project START DATE' ) try: # check user has not project with that name profile = request.user.profile projects = Project.objects.filter(profile=profile, name=project_name) if len(projects) > 0: return bad_request('Project name already exist') project = Project(profile=profile, name=project_name, picture=project_image, description=project_description, start_date=project_start_date, end_date=project_end_date, creator_role=project_creator_role, project_url=project_url) project.save() project.tags.clear() for tagName in [ x.lower().capitalize() for x in project_tags.split(",") ]: project.tags.add( Tag.objects.filter(name=tagName).first() or Tag.create(name=tagName)) project.save() result = ProjectSerializer(project).data except Exception as e: return bad_request(e) return success('ok', 'project created', result)
def addproject(request): current_user = request.user account = get_object_or_404(Account, username=current_user) if request.method == "POST": project = Project() project.project_name = request.POST["project_name"] project.description = request.POST["editor1"] project.project_file = request.FILES["projectFile"] try: project.additional_file = request.FILES["additionalFile"] except: project.additional_file = None project.date_of_initiation = request.POST['start_date'] project.deadline = request.POST['dead_line'] project.save() return render(request, 'dashboard/addproject.html', { 'account': account, 'project': project }) else: current_user = request.user account = get_object_or_404(Account, username=current_user) return render(request, 'dashboard/addproject.html', {'account': account})