Ejemplo n.º 1
0
def item(request, provider_id):
    from product.models import Product

    provider = get_object_or_404(Provider, id = provider_id)
    form = ProviderForm(user = request.user, instance = provider)

    if request.method == 'POST':
        form = ProviderForm(user = request.user, instance = provider, data = request.POST)
        if form.is_valid():
            form.save()

            if provider.reseller:
                for product in provider.product_set.all():
                    if not product.origin: product.origin = provider.name
                    product.provider = provider.reseller
                    product.save()

                for product in Product.objects.filter(origin = provider.name):
                    product.provider = provider.reseller
                    product.save()
            else:
                for product in Product.objects.filter(origin = provider.name):
                    product.provider = provider
                    product.origin = None
                    product.save()

            info_msg(request, u"Fournisseur modifié avec succès.")
            return redirect('provider:index')

    return render(request, 'provider/item.html', {
        'provider': provider,
        'form': form
    })
Ejemplo n.º 2
0
 def test_json_validation_insert_keys_with_valid(self):
     form = ProviderForm({
         'name': "test",
         'website': "http://e.com",
         'regex_find_count': "\\d+",
         'base_provider': self.base.id,
         'options': '{"id":"1", "hacking":"the gate"}',
     })
     self.assertTrue(form.is_valid(), form.errors)
Ejemplo n.º 3
0
 def test_regex_not_valid(self):
     form = ProviderForm({
         'name': "test",
         'website': "http://e.com",
         'regex_find_count': "",
         'base_provider': self.base.id,
         'options': '{"id":"1"}',
     })
     self.assertFalse(form.is_valid(), form.errors)
Ejemplo n.º 4
0
 def test_base_not_valid(self):
     form = ProviderForm({
         'name': "test",
         'website': "http://e.com",
         'regex_find_count': "\\d+",
         'base_provider': -1,
         'options': '{"id":"1"}',
     })
     with self.assertRaises(Exception):
         form.is_valid()
Ejemplo n.º 5
0
 def test_empty_options(self):
     form = ProviderForm({
         'name': "test",
         'website': "http://e.com",
         'regex_find_count': "\\d+",
         'base_provider': self.base.id,
         'options': '',
     })
     self.assertTrue(form.is_valid(), form.errors)
     self.assertEqual(form.clean_options(), {})
Ejemplo n.º 6
0
 def test_options_not_valid_json(self):
     for bad_json in ['not json', '10 things']:
         with self.subTest(bad_json=bad_json):
             form = ProviderForm({
                 'name': "test",
                 'website': "http://e.com",
                 'regex_find_count': "\d+",
                 'base_provider': self.base.id,
                 'options': bad_json,
             })
             self.assertFalse(form.is_valid(), form.errors)
Ejemplo n.º 7
0
 def test_website_not_valid(self):
     for site in ["", "not url"]:
         with self.subTest(site=site):
             form = ProviderForm({
                 'name': "test",
                 'website': site,
                 'regex_find_count': "\\d+",
                 'base_provider': self.base.id,
                 'options': '{"id":"1"}',
             })
             self.assertFalse(form.is_valid(), form.errors)
Ejemplo n.º 8
0
    def test_options_invalid_type(self):
        form = ProviderForm({
            'name': "test",
            'website': "http://e.com",
            'regex_find_count': "r",
            'base_provider': self.base.id,
            'options': 1,
        })

        self.assertFalse(form.is_valid(), form.errors)
        self.assertTrue('options' in form.errors, form.errors)
Ejemplo n.º 9
0
def add_provider(request):
    form = ProviderForm()
    if request.method == 'POST':
        form = ProviderForm(request.POST)
        if form.is_valid():
            ptype = form.save(commit=False)
            ptype.owner = request.user
            ptype.save()
            return redirect(reverse('provider.views.index'))
    ctx = {
        'form': form
    }
    return render_to_response('provider/add_provider.html', ctx,
        context_instance=RequestContext(request))
Ejemplo n.º 10
0
def index(request):
    if request.method == 'GET':
        return render(
            request, 'provider/index.html',
            {'provider_list': Provider.objects.filter(is_service=False)})
    elif request.method == 'POST':
        form = ProviderForm(user=request.user, data=request.POST)
        if form.is_valid():
            form.save()
            info_msg(request, u"Fournisseur ajouté avec succès.")
            return redirect('provider_index')
        else:
            error_msg(request, "Impossible de créer le fournisseur.")
            return render(request, 'provider/form.html', {'form': form})
Ejemplo n.º 11
0
def index(request):
    if request.method == 'GET':
        return render(request, 'provider/index.html',{
            'provider_list': Provider.objects.filter(is_service = False)
        })
    elif request.method == 'POST':
        form = ProviderForm(user = request.user, data = request.POST)
        if form.is_valid():
            form.save()
            info_msg(request, u"Fournisseur ajouté avec succès.")
            return redirect('provider:index')
        else:
            error_msg(request, "Impossible de créer le fournisseur.")
            return render(request, 'provider/form.html',{
                'form': form
            })
Ejemplo n.º 12
0
    def test_json_validation_leave_keys(self):
        self.base.available_options = {
            "properties": {"id": {"type": "string"},
                           "n": {"type": "string"}},
            "required": ["n"]
        }
        self.base.save()

        form = ProviderForm({
            'name': "test",
            'website': "http://e.com",
            'regex_find_count': "\\d+",
            'base_provider': self.base.id,
            'options': '{}',
        })
        self.assertFalse(form.is_valid(), form.errors)
Ejemplo n.º 13
0
def item(request, provider_id):
    from product.models import Product

    provider = get_object_or_404(Provider, id=provider_id)
    if request.method == 'GET':
        form = ProviderForm(user=request.user, instance=provider)
    elif request.method == 'POST':
        form = ProviderForm(user=request.user,
                            instance=provider,
                            data=request.POST)
        if form.is_valid():
            form.save()

            if provider.reseller:
                for product in provider.product_set.all():
                    if not product.origin: product.origin = provider.name
                    product.provider = provider.reseller
                    product.save()

                for product in Product.objects.filter(origin=provider.name):
                    product.provider = provider.reseller
                    product.save()
            else:
                for product in Product.objects.filter(origin=provider.name):
                    product.provider = provider
                    product.origin = None
                    product.save()

            info_msg(request, u"Fournisseur modifié avec succès.")
            return redirect('provider_index')

    return render(request, 'provider/item.html', {
        'provider': provider,
        'form': form
    })
Ejemplo n.º 14
0
def new(request):
    form = ProviderForm()
    if request.method == 'POST':
        form = ProviderForm(request.POST)
        form.full_clean()
        if form.is_valid():
            new_provider = form.save()
            messages.add_message(request,
                                 messages.SUCCESS,
                                 "<strong>Success</strong> Created {}"
                                 .format(new_provider.name))
            return HttpResponseRedirect(reverse('provider:view',
                                                args=[new_provider.id]))
    return render(request, 'provider/new.html',
                  {'form': form})
Ejemplo n.º 15
0
def edit(request, provider_id):
    provider = get_object_or_404(Provider, pk=provider_id)
    form = ProviderForm(instance=provider)
    if request.method == 'POST':
        form = ProviderForm(request.POST, instance=provider)
        if form.is_valid():
            if form.has_changed():
                form.save()

                messages.add_message(request,
                                     messages.SUCCESS,
                                     "<strong>Success</strong> Edited {}"
                                     .format(provider.name))
            return HttpResponseRedirect(reverse('provider:view',
                                                args=[provider.id]))
    return render(request, 'provider/edit.html',
                  {'form': form,
                   'provider': provider})
Ejemplo n.º 16
0
def new(request):
    return render(request, 'provider/form.html',
                  {'form': ProviderForm(user=request.user)})