Parcourir la source

Minor code improvement

Fabs il y a 10 ans
Parent
commit
08f039cbf5

+ 9 - 7
coin/billing/templates/billing/invoice_pdf.html

@@ -6,14 +6,14 @@
 		<style>
 		<style>
 		    @page {
 		    @page {
 		        size: a4 portrait;
 		        size: a4 portrait;
-		        @frame header_frame {          
+		        @frame header_frame {
 		            -pdf-frame-content: header_content;
 		            -pdf-frame-content: header_content;
 		            left: 50pt; width: 512pt; top: 50pt; height: 70pt;
 		            left: 50pt; width: 512pt; top: 50pt; height: 70pt;
 		        }
 		        }
 		        @frame content_frame {
 		        @frame content_frame {
 		            left: 50pt; width: 512pt; top: 120pt; height: 632pt;
 		            left: 50pt; width: 512pt; top: 120pt; height: 632pt;
 		        }
 		        }
-		        @frame footer_frame { 
+		        @frame footer_frame {
 		            -pdf-frame-content: footer_content;
 		            -pdf-frame-content: footer_content;
 		            left: 50pt; width: 512pt; top: 772pt; height: 30pt;
 		            left: 50pt; width: 512pt; top: 772pt; height: 30pt;
 		        }
 		        }
@@ -60,7 +60,7 @@
 				<td><h1>Facture N°{{ invoice.number }}</h1>
 				<td><h1>Facture N°{{ invoice.number }}</h1>
 					Le {{ invoice.date }}</td>
 					Le {{ invoice.date }}</td>
 			</tr>
 			</tr>
-		</table>		
+		</table>
 	</div>
 	</div>
 	<div id="footer_content">
 	<div id="footer_content">
 		<hr />
 		<hr />
@@ -87,10 +87,12 @@
 			</td>
 			</td>
 			<td id="coordonnees_client">
 			<td id="coordonnees_client">
 				<strong>Facturé à :</strong><br/>
 				<strong>Facturé à :</strong><br/>
-				{{ member.last_name }} {{ member.first_name }}<br />
-				{% if member.organization_name != "" %}{{ member.organization_name }}<br />{% endif %}
-				{{ member.address }}<br />
-				{{ member.postal_code }} {{ member.city}}
+                {% with member=invoice.member %}
+                    {{ member.last_name }} {{ member.first_name }}<br />
+                    {% if member.organization_name != "" %}{{ member.organization_name }}<br />{% endif %}
+                    {{ member.address }}<br />
+                    {{ member.postal_code }} {{ member.city}}
+                {% endwith %}
 			</td>
 			</td>
 		</tr>
 		</tr>
 	</table>
 	</table>

+ 1 - 1
coin/billing/urls.py

@@ -5,6 +5,6 @@ from coin.billing import views
 urlpatterns = patterns(
 urlpatterns = patterns(
     '',
     '',
     url(r'^invoice/(?P<id>.+).pdf$', views.invoice_pdf, name="invoice_pdf"),
     url(r'^invoice/(?P<id>.+).pdf$', views.invoice_pdf, name="invoice_pdf"),
-    url(r'^invoice/(?P<id>.+).html$', views.invoice_html, name="invoice_html"),
+    url(r'^invoice/(?P<id>.+)$', views.invoice, name="invoice"),
     url('invoice/create_all_members_invoices_for_a_period', views.gen_invoices)
     url('invoice/create_all_members_invoices_for_a_period', views.gen_invoices)
 )
 )

+ 8 - 0
coin/billing/utils.py

@@ -0,0 +1,8 @@
+from coin.billing.models import Invoice
+from django.shortcuts import render, get_object_or_404
+
+def get_invoice_from_id_or_number(id):
+    try:
+        return Invoice.objects.get(pk=id)
+    except:
+        return get_object_or_404(Invoice, number=id)

+ 12 - 21
coin/billing/views.py

@@ -1,12 +1,13 @@
 # -*- coding: utf-8 -*-
 # -*- coding: utf-8 -*-
 from django.http import HttpResponse
 from django.http import HttpResponse
 from django.template import RequestContext
 from django.template import RequestContext
-from django.shortcuts import render, get_object_or_404, render_to_response
+from django.shortcuts import render, render_to_response
 from django.core.exceptions import PermissionDenied
 from django.core.exceptions import PermissionDenied
 from coin.billing.models import Invoice
 from coin.billing.models import Invoice
 from coin.members.models import Member
 from coin.members.models import Member
 from coin.html2pdf import render_as_pdf
 from coin.html2pdf import render_as_pdf
 from coin.billing.create_subscriptions_invoices import create_all_members_invoices_for_a_period
 from coin.billing.create_subscriptions_invoices import create_all_members_invoices_for_a_period
+from coin.billing.utils import get_invoice_from_id_or_number
 
 
 def gen_invoices(request):
 def gen_invoices(request):
     create_all_members_invoices_for_a_period()
     create_all_members_invoices_for_a_period()
@@ -17,20 +18,14 @@ def invoice_pdf(request, id):
     Renvoi une facture générée en format pdf
     Renvoi une facture générée en format pdf
     id peut être soit la pk d'une facture, soit le numero de facture
     id peut être soit la pk d'une facture, soit le numero de facture
     """
     """
-    try:
-        invoice = Invoice.objects.get(pk=id)
-    except:
-        invoice = get_object_or_404(Invoice, number=id)
+
+    invoice = get_invoice_from_id_or_number(id)
 
 
     if not invoice.has_owner(request.user.username)\
     if not invoice.has_owner(request.user.username)\
        and not request.user.is_superuser:
        and not request.user.is_superuser:
         raise PermissionDenied
         raise PermissionDenied
 
 
-    member = invoice.member
-
-    context = {"invoice": invoice, 'member': member}
-
-    pdf = render_as_pdf('billing/invoice_pdf.html', context)
+    pdf = render_as_pdf('billing/invoice_pdf.html', {"invoice": invoice})
 
 
     response = HttpResponse(content_type='application/pdf')
     response = HttpResponse(content_type='application/pdf')
     #response['Content-Disposition'] = 'attachment; filename="facture.pdf"'
     #response['Content-Disposition'] = 'attachment; filename="facture.pdf"'
@@ -39,25 +34,21 @@ def invoice_pdf(request, id):
 
 
     return response
     return response
 
 
-def invoice_html(request, id):
+def invoice(request, id):
     """
     """
-    Renvoi une facture générée en format pdf
+    Affiche une facture et son détail
     id peut être soit la pk d'une facture, soit le numero de facture
     id peut être soit la pk d'une facture, soit le numero de facture
     """
     """
-    try:
-        invoice = Invoice.objects.get(pk=id)
-    except:
-        invoice = get_object_or_404(Invoice, number=id)
+    invoice = get_invoice_from_id_or_number(id)
 
 
     if not invoice.has_owner(request.user.username)\
     if not invoice.has_owner(request.user.username)\
        and not request.user.is_superuser:
        and not request.user.is_superuser:
         raise PermissionDenied
         raise PermissionDenied
 
 
-    member = invoice.member
-
-    context = {"invoice": invoice, 'member': member}
-
-    return render_to_response('billing/invoice.html', context,
+    return render_to_response('billing/invoice.html', {"invoice": invoice},
                               context_instance=RequestContext(request))
                               context_instance=RequestContext(request))
 
 
     return response
     return response
+
+
+

+ 1 - 1
coin/members/templates/members/invoices.html

@@ -15,7 +15,7 @@
     <tbody>
     <tbody>
         {% for invoice in invoices %}
         {% for invoice in invoices %}
         <tr>
         <tr>
-            <td><a href="{% url 'billing:invoice_html' id=invoice.number %}">{{ invoice.number }}</a></td>
+            <td><a href="{% url 'billing:invoice' id=invoice.number %}">{{ invoice.number }}</a></td>
             <td>{{ invoice.date }}</td>
             <td>{{ invoice.date }}</td>
             <td>{{ invoice.amount }}</td>
             <td>{{ invoice.amount }}</td>
             <td><a href="{% url 'billing:invoice_pdf' id=invoice.number %}">PDF</a></td>
             <td><a href="{% url 'billing:invoice_pdf' id=invoice.number %}">PDF</a></td>