Advertisement
Guest User

Untitled

a guest
Jul 31st, 2015
416
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.17 KB | None | 0 0
  1. #### QUICKSTIMATE/URLS.PY
  2. from __future__ import absolute_import
  3. from django.conf.urls import patterns, include, url
  4.  
  5. from . import views
  6.  
  7. urlpatterns = patterns('',
  8.     url(r'^paper$', views.PaperCreateView.as_view(), name='paper'),
  9.     url(r'^(?P<pk>[0-9]+)/$', views.PaperDetailView.as_view(), name='detail'),
  10. )
  11.  
  12. #### QUICKSTIMATE/VIEWS.PY
  13. from __future__ import absolute_import
  14. from django.shortcuts import redirect
  15. from django.views import generic
  16. from django.views.generic.detail import SingleObjectMixin
  17. from .models import PaperEstimate
  18. from . import forms
  19. from braces import views
  20.  
  21. class PaperCreateView(
  22.     views.LoginRequiredMixin,
  23.     views.SetHeadlineMixin,
  24.     generic.CreateView,
  25. ):
  26.     form_class = forms.PaperEstimateForm
  27.     headline = "Create New Paper Estimate"
  28.     model = PaperEstimate
  29.  
  30. class PaperDetailView(
  31.     views.LoginRequiredMixin,
  32.     views.SetHeadlineMixin,
  33.     generic.DetailView,
  34. ):
  35.     model = PaperEstimate,
  36.     template_name = 'quickstimate/paperdetail.html',
  37.     headline = 'Paper Estimate Detail'    
  38.  
  39. #### QUICKSTIMATE/MODELS.PY
  40. from __future__ import absolute_import
  41.  
  42. from django.db import models
  43. from django.core.urlresolvers import reverse
  44. from django.contrib.auth.models import User
  45. from django.template.defaultfilters import slugify
  46.  
  47. from production.models import (OutputDevice, Paper, Envelope, Ink, PressSheetSize, Fold, Perf, SaddleStitch, CoilBind, UVCoating, DrillHoles)
  48.  
  49. class PaperEstimate(models.Model):
  50.     """
  51.    A model to help create an estimate based off inputs entered by user
  52.    """
  53.     # Print Info Inputs
  54.     signatures = models.IntegerField(blank=True, null=True, default=1)
  55.     quantity = models.IntegerField(null=True, blank=True)
  56.     paper = models.ForeignKey(Paper, blank=True)
  57.     number_up = models.IntegerField(null=True, blank=True, help_text="Leave blank if entereing dimensions")
  58.     flat_width = models.FloatField(null=True, blank=True, help_text="Leave blank if entering number up")
  59.     flat_length = models.FloatField(null=True, blank=True, help_text="Leave blank if entering number up")
  60.     inks = models.ForeignKey(Ink, null=True, blank=True)
  61.     bleed = models.BooleanField(default=True)
  62.     # Bindery Info Inputs
  63.     fold = models.ForeignKey(Fold, null=True, blank=True)
  64.     fold_quantity = models.FloatField(null=True, blank=True, help_text="Leave blank if same as quantity above")
  65.     perf = models.ForeignKey(Perf, null=True, blank=True)
  66.     perf_quantity = models.FloatField(null=True, blank=True, help_text="Leave blank if same as quantity above")
  67.     uv_coating = models.ForeignKey(UVCoating, null=True, blank=True)
  68.     uv_quantity = models.FloatField(null=True, blank=True, help_text="Leave blank if same as quantity above")
  69.     drill_holes = models.ForeignKey(DrillHoles, null=True, blank=True)
  70.     drill_holes_quantity = models.FloatField(null=True, blank=True, help_text="Leave blank if same as quantity above")
  71.     coil_bind = models.ForeignKey(CoilBind, null=True, blank=True)
  72.     coil_bind_quantity = models.FloatField(null=True, blank=True, help_text="Leave blank if same as quantity above")
  73.     saddle_stitch = models.ForeignKey(SaddleStitch, null=True, blank=True)
  74.     saddle_stitch_quantity = models.FloatField(null=True, blank=True, help_text="Leave blank if same as quantity above")
  75.  
  76.     def __str__(self):
  77.         return str(self.pk)
  78.  
  79.     def get_absolute_url(self):
  80.         return reverse('estimates:detail', kwargs={'pk': self.pk})
  81.  
  82. #### QUICKSTIMATE/FORMS.PY
  83. from __future__ import absolute_import
  84.  
  85. from django import forms
  86.  
  87. from crispy_forms.helper import FormHelper
  88. from crispy_forms.layout import Layout, ButtonHolder, Submit
  89.  
  90. from . import models
  91.  
  92. class PaperEstimateForm(forms.ModelForm):
  93.     class Meta:
  94.         fields = (
  95.             'signatures',
  96.             'quantity',
  97.             'paper',
  98.             'number_up',
  99.             'flat_width',
  100.             'flat_length',
  101.             'inks',
  102.             'bleed',
  103.             'fold',
  104.             'fold_quantity',
  105.             'perf',
  106.             'perf_quantity',
  107.             'uv_coating',
  108.             'uv_quantity',
  109.             'drill_holes',
  110.             'drill_holes_quantity',
  111.             'coil_bind',
  112.             'coil_bind_quantity',
  113.             'saddle_stitch',
  114.             'saddle_stitch_quantity',
  115.         )
  116.         model = models.PaperEstimate
  117.  
  118.     def __init__(self, *args, **kwargs):
  119.         super(PaperEstimateForm, self).__init__(*args, **kwargs)
  120.         self.helper = FormHelper()
  121.         self.helper.layout = Layout(
  122.             'signatures',
  123.             'quantity',
  124.             'paper',
  125.             'number_up',
  126.             'flat_width',
  127.             'flat_length',
  128.             'inks',
  129.             'bleed',
  130.             'fold',
  131.             'fold_quantity',
  132.             'perf',
  133.             'perf_quantity',
  134.             'uv_coating',
  135.             'uv_quantity',
  136.             'drill_holes',
  137.             'drill_holes_quantity',
  138.             'coil_bind',
  139.             'coil_bind_quantity',
  140.             'saddle_stitch',
  141.             'saddle_stitch_quantity',
  142.             ButtonHolder(
  143.                 Submit('create', 'Submit', css_class='btn-primary')
  144.                 )
  145.             )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement