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)
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()
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()
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())
def test_invalid_form(self): form_data = { # name is required 'description': 'opis projekta' } form = OrganizationForm(data=form_data) self.assertFalse(form.is_valid())
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()
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 })
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()
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)
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)
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())
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 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')
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()
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 })
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 })
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)
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())
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())
def test_required_fields(self): form = OrganizationForm() self.assertTrue(form.fields['name'].required) self.assertFalse(form.fields['description'].required)
def get_context_data(self,**kwargs): from organizations.forms import OrganizationForm c = super(SuggestOrganizationView,self).get_context_data(**kwargs) c["form"] = OrganizationForm() return c
def test_field_number(self): form = OrganizationForm() self.assertEquals(len(form.fields), 2)
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, }, )
def get_context_data(self, **kwargs): from organizations.forms import OrganizationForm context = super(CreateOrganization, self).get_context_data(**kwargs) context["form"] = OrganizationForm() return context