Beispiel #1
0
def manage_group(request):
    SecondaryObjectiveFormSet = inlineformset_factory(Project, SecondaryObjective, form=SecondaryObjectiveForm,
                                                      extra=3, can_delete=False)

    if request.method == 'POST':
        project_form = ProjectForm(request.POST)
        objective_formset = SecondaryObjectiveFormSet(request.POST)
        # objective_form = SecondaryObjectiveForm(request.POST)
        if project_form.is_valid() and objective_formset.is_valid():
            project = project_form.save(commit=False)
            objective = objective_formset.save(commit=False)
            print("is valid >>>>>>>", objective)
            project.created_by = request.user
            project.save()
            for obj in objective:
                obj.project = project
                obj.save()
                print("is valid >>>>>>>", obj.objective)

            return redirect("portal:home")
        else:
            data = project_form.errors.as_json()
            print("form is not valid", data)
            return JsonResponse(data, safe=False, status=400)
    else:
        project_form = ProjectForm()
        objective_formset = SecondaryObjectiveFormSet()

    return render(request, 'projects/group-management.html', {
        "projects": Project.objects.all(),
        "project_form": project_form,
        "objective_formset": objective_formset,

    })
Beispiel #2
0
def new_project(request):
    names = ['Create New Project', 'OnGoing Projects', 'Completed Projects']
    links = [
        reverse('new_project'),
        reverse('projects'),
        reverse('old_projects')
    ]
    submenus = create_sub(names, links)
    context = {'proj_selected': 'current'}
    if len(request.POST) <= 0:
        form = ProjectForm()
        context.update({
            'form': form,
            'entity': 'Project',
            'submenus': submenus
        })
        return render(request, "new.html", context)
    else:
        form = ProjectForm(request.POST)
        if form.is_valid():
            form.save(commit=True)
            url = reverse('projects')
            return HttpResponseRedirect("%s?success=2" % (url))
        else:
            context.update({
                'title':
                'Create New Project',
                'form':
                form,
                'entity':
                'Project',
                'errors':
                'Invalid Entry or required fields not filled'
            })
            return render(request, "new.html", context)
Beispiel #3
0
def createProject(request):
    if request.user.is_authenticated:
        if request.method == 'POST':
            form = ProjectForm(request.POST)

            if form.is_valid():
                project_form = form.save(commit=False)
                project_form.save()
                form.save_m2m()

                for _img in request.FILES.getlist('project_images[]'):
                    FileSystemStorage(location='/images')
                    photo = Images(project=project_form, path=_img)
                    photo.save()

                for tag in request.POST["project_tags"].split(","):
                    tag = tag.strip()
                    Tags(project=project_form, tag_name=tag).save()

                # user profile page
                return redirect("project_details", project_form.id)
            else:
                return render(request, 'projects/create_project.html/',
                              {'project_form': form})

        else:

            project_form = ProjectForm(initial={"user": request.user})

            return render(request, 'projects/create_project.html/',
                          {'project_form': project_form})
    else:
        return redirect('login')
Beispiel #4
0
def add_project_view(request):
    if request.user.is_authenticated() and request.user.is_staff:
        if request.POST:
            form = ProjectForm(request.POST)
            if form.is_valid():
                data = form.cleaned_data
                td = data['end_date'] - data['start_date']
                if td.total_seconds() > 0:
                    project = Project()
                    project.name = data['name']
                    project.description = data['description']
                    project.start_date = data['start_date']
                    project.end_date = data['end_date']
                    project.user = User.objects.get(
                        username=request.user.username)
                    project.save()
                else:
                    messages.add_message(request, messages.ERROR,
                                         " end date is less than start date!")
                    return (redirect(reverse('Home:add_project')))
                return (redirect(reverse('Home:manager')))
            else:
                messages.add_message(request, messages.ERROR, "invalid form")
                return (redirect(reverse('Home:add_project')))
        else:
            form = ProjectForm()
            send_dict = {}
            send_dict['form'] = form
            return render_to_response('managers/add_project.html',
                                      send_dict,
                                      context_instance=RequestContext(request))
    else:
        return redirect(reverse('Login:login'))
Beispiel #5
0
def project_edit(request, pk):
    if request.user.account.demo:
        raise Http404

    project = get_object_or_404(Project, pk=pk)
    project_manager = project.project_manager

    if project.archived:
        raise Http404
    elif not (request.user.account.role == 'admin'
              or request.user.account.role == 'project_manager'):
        raise Http404
    elif request.user.account.role == 'project_manager' and request.user.account != project_manager:
        raise Http404

    if request.method == 'POST':
        form = ProjectForm(request.POST, instance=project)
        if form.is_valid():
            new_project_manager = form.save().project_manager
            if not project_manager == new_project_manager:
                Notification.objects.create(
                    title=f'Project Edited',
                    text=
                    f'You have been removed as project manager from "{project.title}"',
                    recipient=project_manager)
                Notification.objects.create(
                    title=f'Project Edited',
                    text=
                    f'You have been appointed as project manager for "{project.title}"',
                    recipient=new_project_manager)

            return redirect('project_detail_ticket_open', pk)

    return render(request, 'projects/project_edit.html',
                  {'form': ProjectForm(instance=project)})
Beispiel #6
0
def edit_project(request, id):
    project = Project.objects.get(pk=id)
    architects = Architect.objects.values('architect__username', 'id')
    owners = Owner.objects.values('first_name', 'last_name', 'id')

    if request.method == 'POST':
        form = ProjectForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            project.architect = data['architect']
            project.owner = data['owner']
            project.name = data['name']
            project.area = data['area']
            project.type = data['type']
            project.start_date = data['start_date']
            project.end_date = data['end_date']
            project.save()
            return redirect('list_projects')
    else:
        form = ProjectForm()

    return render(
        request, 'projects/edit_project.html', {
            'project': project,
            'form': form,
            'architects': architects,
            'owners': owners,
            'types': Project.BUILDING_TYPES
        })
Beispiel #7
0
def edit_project(request, p_id):
    authors = Author.objects.all()
    teachers = Teacher.objects.all()
    fields = Field.objects.all()
    langs = Project.langChoices
    project_types = Project.formChoices
    courses = Project.courseChoices
    users = User.objects.filter(profile__is_approved=True)
    p = Project.objects.get(pk=p_id)
    if request.method == 'POST':
        pr = ProjectForm(request.POST, request.FILES)
        if pr.is_valid():
            file_form = DictFileForm(request.POST, request.FILES)
            if file_form.is_valid():
                p.file.file = request.FILES['file']
            p.author.clear()
            p.author.add(*request.POST.getlist('author'))
            p.field.clear()
            p.field.add(*request.POST.getlist('field'))
            p.prof.clear()
            p.prof.add(*request.POST.getlist('prof'))
            p.title = request.POST['title']
            p.title_en = request.POST['title_en']
            p.keywords = request.POST['keywords']
            p.keywords_en = request.POST['keywords_en']
            p.abstract = request.POST['abstract']
            p.abstract_en = request.POST['abstract_en']
            p.link = request.POST['link']
            p.course = request.POST['course']
            p.form = request.POST['form']
            p.lang = request.POST['lang']
            p.user = User.objects.get(pk=int(request.POST['user']))
            if request.POST['mark']:
                p.mark = request.POST['mark']
            p.save()
            show_form = False
            valid = True
            return render(request, 'profile/edit.html', locals())
        else:
            errors = pr.errors
            show_form = True
            valid = False
            field_set = set(p.field.values_list('id', flat=True))
            prof_set = set(p.prof.values_list('id', flat=True))
            author_set = set(p.author.values_list('id', flat=True))
            render(request, 'profile/edit.html', locals())
    else:
        p = Project.objects.get(pk=p_id)
        project_form = ProjectForm()
        file_form = DictFileForm()
        show_form = True
        valid = True
        field_set = set(p.field.values_list('id', flat=True))
        prof_set = set(p.prof.values_list('id', flat=True))
        author_set = set(p.author.values_list('id', flat=True))
    return render(request, 'profile/edit.html', locals())
Beispiel #8
0
def new_project(request):
    """The view which lets users create a new project without having to make a
    new session."""

    form = ProjectForm(user=request.user)
    if request.method == "POST":
        form = ProjectForm(user=request.user, data=request.POST)
        if form.is_valid():
            form.save()
            return redirect("/projects/{}/".format(form.instance.id))
    return render(request, "new-project.html", {"form": form})
Beispiel #9
0
def create_project(request):
    if request.method == 'POST':
        form = ProjectForm(request.POST)
        if form.is_valid():
            project = form.save()
            return redirect('projects:project', project.id)
    else:
        form = ProjectForm()
    return render(request, 'projects/edit_project.html', {
        'form': form,
    })
Beispiel #10
0
def edit_project(request, id):
    project = Project.objects.get(pk=id)
    if request.method == 'POST':
        form = ProjectForm(request.POST, instance=project)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('project_index'))
        else:
            return render(request, 'projects/edit_project.html', {'form': form})
    else:
        form = ProjectForm(instance=project)
        return render(request, 'projects/edit_project.html', {'form': form})
Beispiel #11
0
def prj_create(request):

    if request.method == 'POST':
        form = ProjectForm(request.POST, request.FILES)
        if form.is_valid():
            prj = form.save(user=request.user)
            return HttpResponseRedirect(prj.get_absolute_url())
    else:
        form = ProjectForm()

    var = RequestContext(request, {'form': form})
    return render_to_response('projects/prj_create.html', var)
Beispiel #12
0
def project_create(request):
    if request.method == 'POST':
        form = ProjectForm(request.POST)
        if form.is_valid():
            project = form.save(commit=False)
            project.create_by = request.user
            project.update_by = request.user
            project.save()
            return redirect(reverse("project_setting"))
    else:
        form = ProjectForm()
    return render(request, 'projects/project_edit.html', locals())
Beispiel #13
0
def overview(request, username):
    SecondaryObjectiveFormSet = inlineformset_factory(
        Project,
        SecondaryObjective,
        form=SecondaryObjectiveForm,
        extra=3,
        can_delete=False)
    user = User.objects.get(username=username)
    projects = Project.objects.filter(Q(created_by=user)
                                      | Q(members__id__in=[user.id]),
                                      active=True).distinct()
    resources = Publication.objects.filter(project__in=projects,
                                           user=user,
                                           archived=False)
    if request.method == 'POST':
        project_form = ProjectForm(request.POST)
        objectives_formset = SecondaryObjectiveFormSet(request.POST)

        # if project_form.is_valid() and objectives_formset.is_valid():
        #     project = project_form.save(commit=False)
        #     objectives = objectives_formset.save(commit=False)
        #     project.created_by = request.user
        #     project.save()
        #     for objective in objectives:
        #         objective.project = project
        #         objective.save()
        #
        # else:
        #     data = project_form.errors.as_json()
        #     print("form is not valid", data)
        #     return JsonResponse(data, safe=False, status=400)
    else:
        objectives_formset = inlineformset_factory(
            Project,
            SecondaryObjective,
            form=SecondaryObjectiveForm,
            extra=3,
            can_delete=False,
        )
        # objectives_formset = objectives_formset(initial=SecondaryObjective.objects.all().values())
        objectives_formset = objectives_formset()
        project_form = ProjectForm()

    return render(
        request, 'accounts/profile-overview.html', {
            'user': user,
            "resources": resources,
            "projects": projects,
            "form": ResourceForm(user=request.user),
            "project_form": project_form,
            "objectives_formset": objectives_formset,
        })
Beispiel #14
0
def edit_project(request, slug):
    if request.method == 'POST':
        project = get_object_or_404(Project, slug=slug)
        form = ProjectForm(request.POST, instance=project)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(project.get_absolute_url())

    else:
        project = get_object_or_404(Project, slug=slug)
        form = ProjectForm(instance=project)
    return render_to_response('projects/new_project.html', {'form': form},
                              context_instance=RequestContext(request))
Beispiel #15
0
def edit_project(request, project):
    """The view which lets users edit a project."""

    project = get_object_or_404(Project, id=project, user=request.user)
    form = ProjectForm(user=request.user, instance=project)
    if request.method == "POST":
        form = ProjectForm(user=request.user,
                           data=request.POST,
                           instance=project)
        if form.is_valid():
            form.save()
            return redirect("/projects/{}/".format(form.instance.id))
    return render(request, "edit-project.html", {"form": form})
Beispiel #16
0
def edit_project(request, project=project):
    project = get_object_or_404(Project, id=project)
    if request.method == 'POST':
        form = ProjectForm(request.POST, instance=project)
        if form.is_valid():
            project = form.save()
            return redirect('projects:project', project.id)
    else:
        form = ProjectForm(instance=project)
    return render(request, 'projects/edit_project.html', {
        'form': form,
        'project': project,
    })
def create_view(request):
    blank_project_form = ProjectForm()
    if request.method == 'POST':
        upload = ProjectForm(request.POST, request.FILES)
        if upload.is_valid():
            upload.save()
            return redirect('project_index')
        else:
            return HttpResponse(
                """your form is wrong, reload on <a href = "{{ url : 'project_index'}}">reload</a>"""
            )
    else:
        return render(request, 'projects/create_project.html',
                      {'upload_form': blank_project_form})
def edit_project(request, project_id):
    try:
        project_id = Project.objects.get(id=project_id)
    except User.DoesNotExist:
        raise Http404
    if request.method == 'POST':
        form = ProjectForm(request.POST, instance=project_id)
        if form.is_valid():
            project_id = form.save()
            return HttpResponseRedirect('/profile/')
    else:
        form = ProjectForm(instance=project_id)
    return render_to_response('update_project.html', {'form': form},
                              context_instance=RequestContext(request))
Beispiel #19
0
def add_project(request, category_id=None):
    if request.method == 'POST':
        form = ProjectForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect(show_categories)
    category = Category.objects.get(
        id=category_id) if category_id else Category.objects.all()[:1].get()
    form = ProjectForm(initial={'category': category})
    form.fields['category'].queryset = request.user.categories.all()
    return render(request, 'add_project.html', {
        'form': form,
        'title': 'Add project'
    })
Beispiel #20
0
def add_project(request):
    if request.method == 'POST':
        form = ProjectForm(request.POST)

        if form.is_valid():
            form.instance.token = str(uuid4())
            instance = form.save()
            instance.user.add(request.user)
            return HttpResponseRedirect('/panel/projects/%d' %
                                        form.instance.id)

    else:
        form = ProjectForm()

    return TemplateResponse(request, 'panel/project_form.html', {'form': form})
Beispiel #21
0
def CreateProject(request):
    if request.method == "POST":
        if request.user.is_staff:
            projform = ProjectForm(request.POST)
            if projform.is_valid():
                p = Project.objects.create(name = projform.cleaned_data['name'] , progress=0)
                p.save()
                return HttpResponseRedirect('/projects')
            else:
                return render(request , 'new_project.html' , {'errors':True , 'form':projform})
        else:
            return HttpResponseRedirect('/projects')
    else:
        projform = ProjectForm()
        return render(request , 'new_project.html' , {'form' : projform})
Beispiel #22
0
def create_project(request):
    if request.method == 'POST':
        project_form = ProjectForm(request.POST)
        if project_form.is_valid():
            project = project_form.save()
            return HttpResponseRedirect(reverse('project_join', args=[project.id]))
        else:
            return render(request, 'projects/create_project.html',
                          {'project_form': project_form})
    else:
        project_form = ProjectForm(initial={'widgets': {'owner': forms.HiddenInput},
                                            'owner': request.user})

    return render(request, 'projects/create_project.html',
                  {'project_form': project_form})
Beispiel #23
0
def edit_project(request, projectid):
    names = ['Material Purchase', 'Make Payment', 'Invoices', 'Payments']
    links = [
        '/projects/' + projectid + '/purchases',
        '/projects/' + projectid + '/payments',
        '/projects/' + projectid + '/invoices',
        '/projects/' + projectid + '/allpayments'
    ]
    submenus = create_sub(names, links)
    proj = get_object_or_404(Project, pk=projectid)
    context = {'proj_selected': 'current'}

    if len(request.POST) <= 0:
        data = {
            'name': proj.name,
            'location': proj.location,
            'city': proj.city,
            'owner': proj.owner,
            'start_date': proj.start_date,
            'end_date': proj.end_date
        }
        form = ProjectForm(data)
        context.update({
            'title': 'Update Project Details',
            'form': form,
            'submenus': submenus
        })
        return render(request, "edit.html", context)
    else:
        form = ProjectForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            proj.name = cd.get('name')
            proj.location = cd.get('location')
            proj.city = cd.get('city')
            proj.owner = cd.get('owner')
            proj.start_date = cd.get('start_date')
            proj.end_date = cd.get('end_date')
            proj.save()
            url = reverse('projects')
            return HttpResponseRedirect("%s?success=1" % (url))
        else:
            context.update({
                'title': 'Update Project Details',
                'form': form,
                'submenus': submenus
            })
            return render(request, "edit.html", context)
Beispiel #24
0
def login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)

        if form.is_valid():
            try:
                project = Project.objects.filter(
                    liderNome=form.data['liderNome'].upper(),
                    liderTelefone=form.data['liderTelefone'],
                    liderEmail=form.data['liderEmail'].upper(),
                    ativo='SIM')[0]
                formulario = ProjectForm(instance=project)
            except:
                return render(
                    request, 'login.html', {
                        'form':
                        form,
                        'msg':
                        'Projeto não encontrado. Revise as suas informações.'
                    })

            return render(request, 'formProject.html', {'form': formulario})
        else:
            return render(request, 'login.html', {
                'form': form,
                'msg': 'Os dados não são válidos. Revise os campos.'
            })
    else:
        form = LoginForm()
        return render(request, 'login.html', {
            'form': form,
            'msg': 'Erro de login.'
        })
Beispiel #25
0
 def post(self, request, *args, **kwargs):
     """Process the post request with a new Project form filled out."""
     form = ProjectForm(request.POST)
     if form.is_valid():
         form.save(commit=True)
         return HttpResponseRedirect('/projects/projects/')
     return render(request, "project_create.html", {'form': form})
def getrepos():
    """
    This function collects all the repos from
    GitHub and store them in the database
    """
    projects = requests.get('https://api.github.com/orgs/kodkollektivet/repos' + OAUTH_TOKEN).json()

    for project in projects:

        readme = requests.get(
            'https://api.github.com/repos/kodkollektivet/' + project['name'] + '/readme' + OAUTH_TOKEN).json()

        try:
            readme = b64decode(readme['content'])
        except:
            readme = ''

        form = ProjectForm({
            'gh_name': project['name'],
            'gh_id': project['id'],
            'gh_url': project['html_url'],
            'gh_readme': readme
        })

        if form.is_valid():
            # Creates or updates a project. It fist looks it match on gh_name
            pro, created = Project.objects.update_or_create(gh_name=form.data['gh_name'], defaults=form.data)

            languages = requests.get('https://api.github.com/repos/kodkollektivet/'+project['name']+'/languages' + OAUTH_TOKEN).json()

            for key, value in languages.iteritems():
                lan, created = Language.objects.update_or_create(name=key)
                obj, created = ProLan.objects.update_or_create(project=pro, language=lan)
Beispiel #27
0
def edit_project(request, project_id):
    # if freelancer is not working on the project return forbidden
    if Freelancer.objects.filter(email=request.user.email).exists() and \
            Freelancer.objects.get(email=request.user.email).current_project != project_id:
        return HttpResponseForbidden()

    # if user is not owner of the project return forbidden
    elif not Freelancer.objects.filter(email=request.user.email).exists() and \
            Appointment.objects.get(email=request.user.email).project_number != project_id:
        return HttpResponseForbidden()

    project_i = get_object_or_404(Project, project_number=project_id)
    if request.method == 'POST':

        form = ProjectForm(request.POST, instance=project_i)

        if form.is_valid():
            form = form.save()
            messages.success(request, f'Details updated successfully!{form} ')
            return redirect(reverse('freelancer'))

        else:
            messages.error(
                request, 'There is something wrong with your form '
                ' Please check your input! ')

            return render(request, 'freelancers/dashboard.html',
                          {'form': form})
Beispiel #28
0
def edit_project(request, project_id):
    project = Project.objects.get(pk=project_id)
    if request.method == 'POST':
        form = ProjectForm(request.POST, instance=project)
        if form.is_valid():
            print(">>>>>>>>>>>>>>>>>>", form.cleaned_data)
            project = form.save(commit=False)
            project.save()
            members_queryset = form.cleaned_data.get("members")
            # ProjectMembers.objects.filter(project=project).delete()
            print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", members_queryset.all().values_list('id', flat=True))
            print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", Membership.objects.filter(project=project))
            for id in Membership.objects.select_related().filter(project=project).values_list('user__id', flat=True):
                if id not in members_queryset.all().values_list('id', flat=True):
                    Membership.objects.filter(project=project, user__id=id).delete()

            for member in members_queryset.all():

                if not Membership.objects.filter(project=project, user=member).exists():
                    Membership.objects.create(user=member, project=project)

            return render(request, 'projects/includes/_project-card.html', {
                'project': project,
            })
        else:
            data = form.errors.as_json()
            return JsonResponse(data, safe=False, status=400)
Beispiel #29
0
    def post(self, request):
        var = ''
        form = ProjectForm(request.POST, request.FILES)
        form2 = ProfileForm(request.POST, request.FILES)
        projects = request.user.projects.all()
        template_name = 'capturista/home.html'
        if form.is_valid():
            pro = form.save(commit=False)
            pro.user = request.user
            pro.save()
            messages.success(request, "Proyecto guardado con éxito")
            context = {'section': 'alta', 'num_projects': projects.count()}

        else:
            context = {
                'section': 'alta',
                'form': form,
                'form2': form2,
                'num_projects': projects.count()
            }
            return render(request, template_name, context)

        if form2.is_valid():
            perf = form2.save(commit=False)
            perf.uid = pro.uid
            perf.save()
            return redirect('projects:detail', id=pro.id)
Beispiel #30
0
def checkCommunityPartner(request):
    partnerForm = ProjectForm()
    communityParnterName = []
    for object in CommunityPartner.objects.order_by('name'):
        partner = object.name

        if partner not in communityParnterName:
            communityParnterName.append(partner)

    if request.method == 'POST':
        partnerForm = ProjectForm(request.POST)



    # print(projectNames)
    return render(request, 'partners/checkCommunityPartner.html',
                  {'partnerForm': partnerForm, 'partnerNames':communityParnterName})