Ejemplo n.º 1
0
def create_tracker(request):
    new_track_form = TrackerForm(request.POST)
    if request.method == 'POST' and new_track_form.is_valid():
        tracker = Track()
        tracker.name = request.POST['name']
        tracker.unit = request.POST['unit']
        tracker.description = request.POST['description']
        try:
            with transaction.atomic():
                tracker.save()
        except IntegrityError:
            return render(
                request, 'tracker/trackers.html', {
                    'trackers_list':
                    Track.objects.all(),
                    'form':
                    TrackerForm(),
                    'form_error':
                    "Tracking with name '%s' already exists" %
                    (request.POST['name']),
                })
        return HttpResponseRedirect(reverse('tracker:trackers'))
    else:
        fields = {
            'trackers_list': Track.objects.all(),
            'form': new_track_form,
        }

        if new_track_form.errors.get('name'):
            fields['name_error'] = new_track_form.errors.get('name')[0]
        if new_track_form.errors.get('unit'):
            fields['unit_error'] = new_track_form.errors.get('unit')[0]
        if new_track_form.errors.get('description'):
            fields['description_error'] = new_track_form.errors.get(
                'description')[0]

        return render(request, 'tracker/trackers.html', fields)
Ejemplo n.º 2
0
def tracker_list(request):
    trackers = Tracker.objects.filter(createur=request.user.profil)

    form = TrackerForm(request.POST or None)
    if form.is_valid():
        if trackers.filter(nom=form.cleaned_data['nom']).exists():
            form.add_error('nom',
                           'Vous avez déjà créé un tracker du même nom.')
        else:
            tracker = form.save(commit=False)
            tracker.createur = request.user.profil
            tracker.save()

            return redirect('tracker:liste-tracker')

    return render(request, 'tracker/tracker_list.html', {
        'trackers': trackers,
        'form': form
    })
Ejemplo n.º 3
0
 def get_context_data(self, **kwargs):
     context = super(TrackersView, self).get_context_data()
     context['form'] = TrackerForm()
     return context