From 7e4586e4f9d1a00be0a546b490ebfd09d0b8b307 Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Wed, 11 Oct 2017 15:04:54 -0400 Subject: Misc developments and messing with file uploads --- app/app/settings.py | 3 ++ app/app/urls.py | 4 ++- app/dispatch/forms.py | 3 ++ app/dispatch/migrations/0003_paperwork.py | 25 +++++++++++++++++ app/dispatch/models.py | 14 +++++----- app/dispatch/templates/dispatch/loads/create.html | 11 ++++++++ app/dispatch/templates/dispatch/loads/edit.html | 1 + app/dispatch/templates/dispatch/paperwork/add.html | 22 +++++++++++++++ app/dispatch/urls.py | 3 ++ app/dispatch/views.py | 32 +++++++++++++++++++++- 10 files changed, 109 insertions(+), 9 deletions(-) create mode 100644 app/dispatch/forms.py create mode 100644 app/dispatch/migrations/0003_paperwork.py create mode 100644 app/dispatch/templates/dispatch/paperwork/add.html diff --git a/app/app/settings.py b/app/app/settings.py index e876895..abf4cbc 100644 --- a/app/app/settings.py +++ b/app/app/settings.py @@ -138,3 +138,6 @@ STATIC_URL = '/static/' LOGIN_URL = '/login/' LOGIN_REDIRECT_URL = '/' + +MEDIA_ROOT = BASE_DIR + '/media' +MEDIA_URL = '/media/' diff --git a/app/app/urls.py b/app/app/urls.py index 6e1b869..19b4449 100644 --- a/app/app/urls.py +++ b/app/app/urls.py @@ -13,10 +13,12 @@ Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ +from django.conf import settings from django.conf.urls import include, url +from django.conf.urls.static import static from django.contrib import admin urlpatterns = [ url(r'^', include('dispatch.urls')), url(r'^admin/', admin.site.urls), -] +] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/app/dispatch/forms.py b/app/dispatch/forms.py new file mode 100644 index 0000000..32d64dc --- /dev/null +++ b/app/dispatch/forms.py @@ -0,0 +1,3 @@ +from django import forms + + diff --git a/app/dispatch/migrations/0003_paperwork.py b/app/dispatch/migrations/0003_paperwork.py new file mode 100644 index 0000000..72c27d3 --- /dev/null +++ b/app/dispatch/migrations/0003_paperwork.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-10-11 16:15 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('dispatch', '0002_auto_20171010_0140'), + ] + + operations = [ + migrations.CreateModel( + name='Paperwork', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('description', models.CharField(max_length=256)), + ('document', models.FileField(upload_to='paperwork/')), + ('load', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='dispatch.Load')), + ], + ), + ] diff --git a/app/dispatch/models.py b/app/dispatch/models.py index dfb5273..acb13cd 100644 --- a/app/dispatch/models.py +++ b/app/dispatch/models.py @@ -25,13 +25,13 @@ class Load(models.Model): def __str__(self): return "{c}, {d} ( {a} )".format(c=self.company, d=self.description, a=self.amount) -# class Paperwork(models.Model): -# company = models.OneToOneField(Company) -# description = models.CharField(max_length=256) -# amount = models.DecimalField(max_digits=10,decimal_places=2) -# -# def __str__(self): -# return "{c}, {d} ( {a} )".format(c=self.company, d=self.description, a=self.amount) +class Paperwork(models.Model): + load = models.OneToOneField(Load) + description = models.CharField(max_length=256) + document = models.FileField(upload_to='paperwork/') + + def __str__(self): + return "%s" % Load diff --git a/app/dispatch/templates/dispatch/loads/create.html b/app/dispatch/templates/dispatch/loads/create.html index 8d84df3..cf12440 100644 --- a/app/dispatch/templates/dispatch/loads/create.html +++ b/app/dispatch/templates/dispatch/loads/create.html @@ -13,4 +13,15 @@ {{ form.as_p }} + +
+
+
+
+ Note: You must first save the load to attach files +
+
+
+
+ {% endblock %} diff --git a/app/dispatch/templates/dispatch/loads/edit.html b/app/dispatch/templates/dispatch/loads/edit.html index 37b4bb8..f43c242 100644 --- a/app/dispatch/templates/dispatch/loads/edit.html +++ b/app/dispatch/templates/dispatch/loads/edit.html @@ -13,4 +13,5 @@ {{ form.as_p }} + {% endblock %} diff --git a/app/dispatch/templates/dispatch/paperwork/add.html b/app/dispatch/templates/dispatch/paperwork/add.html new file mode 100644 index 0000000..98c51cf --- /dev/null +++ b/app/dispatch/templates/dispatch/paperwork/add.html @@ -0,0 +1,22 @@ +{% extends 'dispatch/base.html' %} + +{% block title %}Edit - {{ object.load_number }}{% endblock %} + +{% block content %} +
+
+

{{object.name}}

+
+
+ +fuck + +{{load}} +{{form}} + +
{% csrf_token %} + {{ form.as_p }} + +
+ +{% endblock %} diff --git a/app/dispatch/urls.py b/app/dispatch/urls.py index 9ae41f8..683e91f 100644 --- a/app/dispatch/urls.py +++ b/app/dispatch/urls.py @@ -26,4 +26,7 @@ urlpatterns = [ url(r'^loads/edit/(?P\d+)$', views.LoadUpdate.as_view(), name='load_edit'), url(r'^loads/delete/(?P\d+)$', views.LoadDelete.as_view(), name='load_delete'), + + url(r'^loads/upload/(?P\d+)$$', views.PaperworkUpload, name='paperwork_upload'), + ] diff --git a/app/dispatch/views.py b/app/dispatch/views.py index 106d20b..97756e3 100644 --- a/app/dispatch/views.py +++ b/app/dispatch/views.py @@ -9,7 +9,7 @@ from django.views.generic import TemplateView,ListView from django.views.generic.detail import DetailView from django.views.generic.edit import CreateView, UpdateView, DeleteView from django.core.urlresolvers import reverse_lazy -from dispatch.models import Company, Load +from dispatch.models import Company, Load, Paperwork from django.contrib.auth.models import User from django.contrib.auth.mixins import UserPassesTestMixin from django.http import HttpResponseRedirect @@ -229,3 +229,33 @@ class LoadDelete(FilteredDeleteView): template_name = "dispatch/loads/delete.html" model = Load success_url = reverse_lazy('load_list') + + +# Paperwork Uploads + +def PaperworkUpload(request, load_id): + print(request, load_id) + + ctx = {} + + l = Load.objects.get(pk=load_id) + + ctx['load'] = l + + print(l) + + if request.method == 'POST': + form = Paperwork(request.POST, request.FILES) + if form.is_valid(): + # file is saved + form.save() + return HttpResponseRedirect('/success/url/') + else: + form = Paperwork() + + + ctx['form'] = form + + # return redirect(reverse('load_edit', kwargs={'pk': load_id})) + # return render(request, 'dispatch/paperwork/add.html', {'form': form}) + return render(request, 'dispatch/paperwork/add.html', ctx) -- cgit v1.2.3