예제 #1
0
    def mutate_and_get_payload(cls, input, context, info):
        user = context.user
        organization_id = input.get('id', None)
        organization = get_node(organization_id, context, info, Organization)

        if not organization:
            raise Exception("Invalid Organization")

        if organization.owner != user:
            raise Exception("Invalid Access to Organization")

        logo_id = input.get('logo_id')
        logo = get_node(logo_id, context, info, Media)

        # update logo
        organization.logo = logo

        # update organization
        form = OrganizationForm(input, instance=organization)
        if form.is_valid():
            add_admins(organization, input, context, info)
            organization.save()
        else:
            raise Exception(str(form.errors))

        return UpdateOrganizationMutation(organization=organization)
예제 #2
0
    def post(self, request, *args, **kwargs):
        from organizations.forms import OrganizationForm
        from common.templates import render_for_platform

        self.form_post = OrganizationForm(request.POST)

        if request.is_ajax() and self.form_post.is_valid(
        ) and request.user.is_organization_manager():
            post = self.form_post.save(commit=False)
            new_post = post.create_manager_organization(
                name=post.name,
                description=post.description,
                elect=post.elect,
                image=post.image,
                email_1=post.email_1,
                email_2=post.email_2,
                phone_1=post.phone_1,
                phone_2=post.phone_2,
                address_1=post.address_1,
                address_2=post.address_2,
                type=post.type,
                creator=request.user)
            return render_for_platform(request, '<template>',
                                       {'organization': new_post})
        else:
            from django.http import HttpResponseBadRequest
            return HttpResponseBadRequest()
예제 #3
0
 def test_save_org_form(self):
     request = request_factory_login(self.factory, self.owner.user)
     form = OrganizationForm(
         request, instance=self.org, data={"name": self.org.name, "slug": self.org.slug, "owner": self.owner.id}
     )
     self.assertTrue(form.is_valid())
     form.save()
예제 #4
0
    def test_valid_form(self):
        form_data = {
            'name': 'Organization One',
            'description': 'Description of organization one'
        }

        form = OrganizationForm(data=form_data)
        self.assertTrue(form.is_valid())
예제 #5
0
    def test_invalid_form(self):
        form_data = {
            # name is required
            'description': 'opis projekta'
        }

        form = OrganizationForm(data=form_data)
        self.assertFalse(form.is_valid())
예제 #6
0
 def test_admin_edits_form(self):
     user = self.admin.user
     request = request_factory_login(self.factory, user)
     form = OrganizationForm(request, instance=self.org,
             data={'name': self.org.name, 'owner': self.owner.id})
     self.assertTrue(form.is_valid())
     form = OrganizationForm(request, instance=self.org,
             data={'name': self.org.name, 'owner': self.admin.id})
     self.assertFalse(form.is_valid())
 def test_save_org_form(self):
     request = request_factory_login(self.factory, self.owner.user)
     form = OrganizationForm(request,
                             instance=self.org,
                             data={
                                 'name': self.org.name,
                                 'slug': self.org.slug,
                                 'owner': self.owner.id
                             })
     self.assertTrue(form.is_valid())
     form.save()
예제 #8
0
def add_org(request):
    accounts = Account.objects.all()
    users = User.objects.filter(is_active=True).order_by('email')
    #teams = Team.objects.all()
    assignedto_list = request.POST.getlist('assigned_to')
    #teams_list = request.POST.getlist('teams')
    org_account = request.POST.get('account_name')
    org_email = request.POST.get('email')
    org_phone = request.POST.get('phone')
    form = OrganizationForm(assigned_to=users)
    address_form = BillingAddressForm()
    if request.method == 'POST':
        form = OrganizationsForm(request.POST, assigned_to=users)
        address_form = BillingAddressForm(request.POST)
        if address_form.is_valid():
            org_obj = form.save(commit=False)
            address_object = address_form.save()
            org_obj.address = address_object
            org_obj.created_by = request.user
            org_obj.save()
            org_obj.assigned_to.add(*assignedto_list)
            #lead_obj.teams.add(*teams_list)
            if request.POST.get('status') == "converted":
                Account.objects.create(created_by=request.user,
                                       name=org_account,
                                       email=org_email,
                                       phone=org_phone)
            if request.POST.get("savenewform"):
                return HttpResponseRedirect(reverse("organizations:add_org"))
            else:
                return HttpResponseRedirect(reverse('organizations:list'))
        else:
            return render(
                request, 'organizations/create_org.html', {
                    'org_form': form,
                    'address_form': address_form,
                    'accounts': accounts,
                    'users': users,
                    'status': LEAD_STATUS,
                    'source': LEAD_SOURCE,
                    'assignedto_list': assignedto_list
                })
    else:
        return render(
            request, 'organizations/create_org.html', {
                'org_form': form,
                'address_form': address_form,
                'accounts': accounts,
                'users': users,
                'status': LEAD_STATUS,
                'source': LEAD_SOURCE
            })
예제 #9
0
 def test_save_org_form(self):
     request = request_factory_login(self.factory, self.owner.user)
     form = OrganizationForm(
         request,
         instance=self.org,
         data={
             "name": self.org.name,
             "slug": self.org.slug,
             "owner": self.owner.pk
         },
     )
     self.assertTrue(form.is_valid())
     form.save()
예제 #10
0
 def test_owner_edits_org(self):
     user = self.owner.user
     request = request_factory_login(self.factory, user)
     form = OrganizationForm(
         request,
         instance=self.org,
         data={
             "name": self.org.name,
             "slug": self.org.slug,
             "owner": self.owner.id
         },
     )
     self.assertTrue(form.is_valid())
     form = OrganizationForm(
         request,
         instance=self.org,
         data={
             "name": self.org.name,
             "slug": self.org.slug,
             "owner": self.admin.id
         },
     )
     self.assertTrue(form.is_valid())
     form.save()
     self.assertEqual(self.org.owner.organization_user, self.admin)
예제 #11
0
    def mutate_and_get_payload(cls, input, context, info):

        user = context.user

        # create organization
        form = OrganizationForm(input)
        if form.is_valid():
            new_organization = form.save(commit=False)
            new_organization.owner = user
            new_organization.save()
        else:
            raise Exception(str(form.errors))

        return CreateOrganizationMutation(organization=new_organization)
예제 #12
0
 def test_admin_edits_org(self):
     user = self.admin.user
     request = request_factory_login(self.factory, user)
     form = OrganizationForm(
         request,
         instance=self.org,
         data={"name": self.org.name, "slug": self.org.slug, "owner": self.owner.pk},
     )
     self.assertTrue(form.is_valid())
     form = OrganizationForm(
         request,
         instance=self.org,
         data={"name": self.org.name, "slug": self.org.slug, "owner": self.admin.pk},
     )
     self.assertFalse(form.is_valid())
예제 #13
0
    def get_context_data(self, **kwargs):
        from organizations.forms import OrganizationForm

        context = super(PublishOrganization, self).get_context_data(**kwargs)
        context["form"] = OrganizationForm(instance=self.organization)
        context["organization"] = self.organization
        return context
예제 #14
0
    def test_field_labels(self):
        form = OrganizationForm()

        self.assertEqual(form['name'].label, 'Name')
        self.assertEqual(form['description'].label, 'Description')
        self.assertTrue(form.fields['name'].label is None
                        or form.fields['name'].label == 'Name')
        self.assertTrue(form.fields['description'].label is None
                        or form.fields['description'].label == 'Description')
예제 #15
0
class PublishOrganization(TemplateView):
    template_name = "managers/manage_create/organization/create_publish_organization.html"

    def get(self, request, *args, **kwargs):
        self.organization = Organization.objects.get(pk=self.kwargs["pk"])
        return super(PublishOrganization, self).get(request, *args, **kwargs)

    def get_context_data(self, **kwargs):
        from organizations.forms import OrganizationForm

        context = super(PublishOrganization, self).get_context_data(**kwargs)
        context["form"] = OrganizationForm(instance=self.organization)
        context["organization"] = self.organization
        return context

    def post(self, request, *args, **kwargs):
        from organizations.forms import OrganizationForm
        from common.templates import render_for_platform

        self.organization = Organization.objects.get(pk=self.kwargs["pk"])
        self.form_post = OrganizationForm(request.POST,
                                          instance=self.organization)

        if request.is_ajax() and self.form_post.is_valid(
        ) and request.user.is_organization_manager():
            post = self.form_post.save(commit=False)
            new_post = post.create_publish_organization(
                name=post.name,
                description=post.description,
                elect=post.elect,
                image=post.image,
                email_1=post.email_1,
                email_2=post.email_2,
                phone_1=post.phone_1,
                phone_2=post.phone_2,
                address_1=post.address_1,
                address_2=post.address_2,
                type=post.type,
                managet_id=request.user.pk)
            return render_for_platform(request, '<template>',
                                       {'organization': new_post})
        else:
            from django.http import HttpResponseBadRequest
            return HttpResponseBadRequest()
예제 #16
0
파일: views.py 프로젝트: mkanishka/CRM
def edit_organization(request, pk):
    org_obj = get_object_or_404(Organization, id=pk)
    address_obj = get_object_or_404(Address, id=org_obj.address.id)
    users = User.objects.filter(is_active=True).order_by('email')
    form = OrganizationForm(instance=org_obj, assigned_to=users)
    address_form = BillingAddressForm(instance=address_obj)
    teams = Team.objects.all()
    assignedto_list = request.POST.getlist('assigned_to')
    teams_list = request.POST.getlist('teams')
    if request.method == 'POST':
        form = OrganizationForm(request.POST,
                                instance=org_obj,
                                assigned_to=users)
        address_form = BillingAddressForm(request.POST, instance=address_obj)
        if form.is_valid() and address_form.is_valid():
            address_obj = address_form.save()
            org_obj = form.save(commit=False)
            org_obj.address = address_obj
            org_obj.created_by = request.user
            if request.POST.get('stage') in ['CLOSED WON', 'CLOSED LOST']:
                org_obj.closed_by = request.user
                org_obj.save()
                org_obj.assigned_to.clear()
                org_obj.assigned_to.add(*assignedto_list)
                org_obj.teams.clear()
                org_obj.teams.add(*teams_list)
            if request.is_ajax():
                return JsonResponse({'error': False})
            return HttpResponseRedirect(reverse('organizations:list'))
        else:
            if request.is_ajax():
                return JsonResponse({
                    'error': True,
                    'organization_errors': form.errors
                })
            return render(
                request, 'organizations/create_organization.html', {
                    'organization_form': form,
                    'address_form': address_form,
                    'org_obj': org_obj,
                    'teams': teams,
                    'users': users,
                    'assignedto_list': assignedto_list,
                    'teams_list': teams_list
                })
    else:
        return render(
            request, 'organizations/create_organization.html', {
                'organization_form': form,
                'address_form': address_form,
                'org_obj': org_obj,
                'teams': teams,
                'users': users,
                'assignedto_list': assignedto_list,
                'teams_list': teams_list
            })
예제 #17
0
파일: views.py 프로젝트: mkanishka/CRM
def add_organization(request):
    users = User.objects.filter(is_active=True).order_by('email')
    form = OrganizationForm(assigned_to=users)
    address_form = BillingAddressForm()
    teams = Team.objects.all()
    assignedto_list = request.POST.getlist('assigned_to')
    teams_list = request.POST.getlist('teams')
    if request.method == 'POST':
        form = OrganizationForm(request.POST, assigned_to=users)
        address_form = BillingAddressForm(request.POST)
        if form.is_valid() and address_form.is_valid():
            address_obj = address_form.save()
            org_obj = form.save(commit=False)
            org_obj.address = address_obj
            org_obj.created_by = request.user
            org_obj.save()
            org_obj.assigned_to.add(*assignedto_list)
            org_obj.teams.add(*teams_list)
            if request.is_ajax():
                return JsonResponse({'error': False})
            if request.POST.get("savenewform"):
                return HttpResponseRedirect(
                    reverse("organizations:add_organization"))
            else:
                return HttpResponseRedirect(reverse('organizations:list'))
        else:
            if request.is_ajax():
                return JsonResponse({
                    'error': True,
                    'organization_errors': form.errors
                })
            return render(
                request, 'organizations/create_organization.html', {
                    'organization_form': form,
                    'address_form': address_form,
                    'users': users,
                    'status': LEAD_STATUS,
                    'source': LEAD_SOURCE,
                    'teams': teams,
                    'assignedto_list': assignedto_list,
                    'teams_list': teams_list
                })
    else:
        return render(
            request, 'organizations/create_organization.html', {
                'organization_form': form,
                'address_form': address_form,
                'users': users,
                'status': LEAD_STATUS,
                'source': LEAD_SOURCE,
                'teams': teams,
                'assignedto_list': assignedto_list,
                'teams_list': teams_list
            })
예제 #18
0
 def test_owner_edits_org(self):
     user = self.owner.user
     request = request_factory_login(self.factory, user)
     form = OrganizationForm(
         request, instance=self.org, data={"name": self.org.name, "slug": self.org.slug, "owner": self.owner.id}
     )
     self.assertTrue(form.is_valid())
     form = OrganizationForm(
         request, instance=self.org, data={"name": self.org.name, "slug": self.org.slug, "owner": self.admin.id}
     )
     self.assertTrue(form.is_valid())
     form.save()
     self.assertEqual(self.org.owner.organization_user, self.admin)
예제 #19
0
파일: views.py 프로젝트: knospew2/usom
def create_organization(request):
    if request.POST:
        form = OrganizationForm(request.POST)
        if form.is_valid():
            org = form.save(commit=False)
            assert isinstance(org, Organization)
            org.save()
            org.admins.add(request.user)
            return redirect('organization-view', organization_id=org.id)
    else:
        form = OrganizationForm()
    return render(request, 'forms/base-form.html', {
        'form': form,
        'form_title': 'Create Organization',
        'form_action': 'Create'
    })
 def test_admin_edits_org(self):
     user = self.admin.user
     request = request_factory_login(self.factory, user)
     form = OrganizationForm(request,
                             instance=self.org,
                             data={
                                 'name': self.org.name,
                                 'slug': self.org.slug,
                                 'owner': self.owner.id
                             })
     self.assertTrue(form.is_valid())
     form = OrganizationForm(request,
                             instance=self.org,
                             data={
                                 'name': self.org.name,
                                 'slug': self.org.slug,
                                 'owner': self.admin.id
                             })
     self.assertFalse(form.is_valid())
예제 #21
0
 def test_admin_edits_org(self):
     user = self.admin.user
     request = request_factory_login(self.factory, user)
     form = OrganizationForm(
         request,
         instance=self.org,
         data={
             "name": self.org.name,
             "slug": self.org.slug,
             "owner": self.owner.pk
         },
     )
     self.assertTrue(form.is_valid())
     form = OrganizationForm(
         request,
         instance=self.org,
         data={
             "name": self.org.name,
             "slug": self.org.slug,
             "owner": self.admin.pk
         },
     )
     self.assertFalse(form.is_valid())
예제 #22
0
    def test_required_fields(self):
        form = OrganizationForm()

        self.assertTrue(form.fields['name'].required)
        self.assertFalse(form.fields['description'].required)
예제 #23
0
	def get_context_data(self,**kwargs):
		from organizations.forms import OrganizationForm

		c = super(SuggestOrganizationView,self).get_context_data(**kwargs)
		c["form"] = OrganizationForm()
		return c
예제 #24
0
    def test_field_number(self):
        form = OrganizationForm()

        self.assertEquals(len(form.fields), 2)
예제 #25
0
파일: views.py 프로젝트: Noyer/ExmoNew
def organization_list(request, monitoring_id):
    name_filter = invite_filter = None
    alert = request.GET.get('alert', False)
    if request.method == "GET":
        name_filter = request.GET.get('name_filter', False)
        invite_filter = request.GET.get('invite_filter', False)

    monitoring = get_object_or_404(Monitoring, pk=monitoring_id)
    if not request.user.has_perm('exmo2010.view_monitoring', monitoring):
        return HttpResponseForbidden(_('Forbidden'))
    title = _('Organizations for monitoring %s') % monitoring

    orgs = Organization.objects.filter(monitoring=monitoring)
    sent = orgs.exclude(inv_status='NTS')

    initial = {'monitoring': monitoring}

    org_type = 'all'

    if request.method == "POST" and "submit_invite" in request.POST:
        inv_form = InviteOrgsForm(request.POST)
        comment = inv_form.data['comment']
        inv_status = inv_form.data['inv_status']
        if inv_form.is_valid():
            inv_form.save()

            if inv_status != 'ALL':
                orgs = orgs.filter(inv_status=inv_status)

            for org in orgs:
                subject = _('Email Subject')
                message = comment.replace('%code%', org.inv_code)
                context = {
                    'subject': subject,
                    'message': message
                }
                if org.email:
                    emails = filter(None, org.email.split(', '))
                else:
                    continue
                task_id = send_email.delay(emails, subject, 'organizations/invitation_email', context=context, mdn=True)

                task = EmailTasks()
                task.task_id = task_id
                task.organization = org
                task.save()

            redirect = reverse('exmo2010:organization_list', args=[monitoring_id])+"?alert=success"
            return HttpResponseRedirect(redirect)
        else:
            initial.update({'comment': comment, 'inv_status': inv_status})
            alert = 'fail'

    inv_form = InviteOrgsForm(initial=initial)

    if request.user.has_perm('exmo2010.admin_monitoring', monitoring):
        queryset = Organization.objects.filter(monitoring=monitoring).extra(
            select={
                'task__count': 'SELECT count(*) FROM %s WHERE organization_id = %s.id' % (
                    Task._meta.db_table,
                    Organization._meta.db_table,
                ),
            }
        )

        headers = (
            (_('organization'), 'name', None, None, None),
            (_('email'), 'email', None, None, None),
            (_('phone'), 'phone', None, None, None),
            (_('invitation code'), 'inv_code', None, None, None),
            (_('tasks'), 'task__count', None, None, None),
            (_('invitation'), 'inv_status', None, None, None),
        )
    else:
        org_list = []
        for task in Task.objects.filter(organization__monitoring=monitoring).select_related():
            if request.user.has_perm('exmo2010.view_task', task):
                org_list.append(task.organization.pk)
        org_list = list(set(org_list))
        if not org_list:
            return HttpResponseForbidden(_('Forbidden'))
        queryset = Organization.objects.filter(pk__in=org_list)
        headers = (
            (_('organization'), 'name', None, None, None),
            (_('email'), 'email', None, None, None),
            (_('phone'), 'phone', None, None, None),
            (_('invitation code'), 'inv_code', None, None, None),
            (_('invitation'), 'inv_status', None, None, None),
        )

    if not sent:
        headers_list = list(headers)
        headers_list.pop()
        headers = tuple(headers_list)

    if name_filter:
        queryset = queryset.filter(name__icontains=name_filter)
    if invite_filter and invite_filter != 'ALL':
        queryset = queryset.filter(inv_status=invite_filter)

    crumbs = ['Home', 'Monitoring']
    breadcrumbs(request, crumbs)

    if request.expert:
        current_title = _('Monitoring cycle')
    else:
        current_title = _('Rating') if monitoring.status == 5 else _('Tasks')

    initial = {'monitoring': monitoring}
    form = OrganizationForm(initial=initial)
    if request.method == "POST" and "submit_add" in request.POST:
        form = OrganizationForm(request.POST)
        if form.is_valid():
            form.save()
        else:
            org_type = 'add'

    inv_history = InviteOrgs.objects.filter(monitoring=monitoring)

    date_filter_history = None
    invite_filter_history = None

    if request.method == "GET":
        date_filter_history = request.GET.get('date_filter_history', False)
        invite_filter_history = request.GET.get('invite_filter_history', False)

        if date_filter_history:
            start_datetime = datetime.strptime("%s 00:00:00" % date_filter_history, '%d.%m.%Y %H:%M:%S')
            finish_datetime = datetime.strptime("%s 23:59:59" % date_filter_history, '%d.%m.%Y %H:%M:%S')
            inv_history = inv_history.filter(timestamp__gt=start_datetime,
                                             timestamp__lt=finish_datetime)
        if invite_filter_history and invite_filter_history != 'ALL':
            inv_history = inv_history.filter(inv_status=invite_filter_history)

    return table(
        request,
        headers,
        queryset=queryset,
        paginate_by=100,
        extra_context={
            'current_title': current_title,
            'title': title,
            'sent': sent,
            'inv_form': inv_form,
            'alert': alert,
            'org_type': org_type,
            'inv_status': INV_STATUS,
            'monitoring': monitoring,
            'invcodeform': SettingsInvCodeForm(),
            'form': form,
            'inv_history': inv_history,
            'date_filter_history': date_filter_history,
            'invite_filter_history': invite_filter_history,
        },
    )
예제 #26
0
    def get_context_data(self, **kwargs):
        from organizations.forms import OrganizationForm

        context = super(CreateOrganization, self).get_context_data(**kwargs)
        context["form"] = OrganizationForm()
        return context