First step refactoring ReportView into a class
This commit is contained in:
		
							parent
							
								
									4e3f4aa9ad
								
							
						
					
					
						commit
						320f6ab6eb
					
				
					 1 changed files with 25 additions and 12 deletions
				
			
		|  | @ -194,19 +194,39 @@ def report_view(title, form_type=None): | ||||||
| 
 | 
 | ||||||
|     ''' |     ''' | ||||||
| 
 | 
 | ||||||
|  |     # Consolidate form_type so it has format and section | ||||||
|  |     # Create & return view | ||||||
|  | 
 | ||||||
|     def _report(view): |     def _report(view): | ||||||
| 
 | 
 | ||||||
|         @wraps(view) |         @wraps(view) | ||||||
|         @user_passes_test(views._staff_only) |         @user_passes_test(views._staff_only) | ||||||
|         def inner_view(request, *a, **k): |         def inner_view(request, *a, **k): | ||||||
|  |             return ReportView(request, view, title, form_type).render(*a, **k) | ||||||
| 
 | 
 | ||||||
|             if form_type is not None: |         # Add this report to the list of reports. | ||||||
|                 form = form_type(request.GET) |         _all_report_views.append(inner_view) | ||||||
|  | 
 | ||||||
|  |         # Return the callable | ||||||
|  |         return inner_view | ||||||
|  |     return _report | ||||||
|  | 
 | ||||||
|  | class ReportView(object): | ||||||
|  | 
 | ||||||
|  |     def __init__(self, request, view, title, form_type): | ||||||
|  |         self.request = request | ||||||
|  |         self.view = view | ||||||
|  |         self.title = title | ||||||
|  |         self.form_type = form_type | ||||||
|  | 
 | ||||||
|  |     def render(self, *a, **k): | ||||||
|  |             if self.form_type is not None: | ||||||
|  |                 form = self.form_type(self.request.GET) | ||||||
|                 form.is_valid() |                 form.is_valid() | ||||||
|             else: |             else: | ||||||
|                 form = None |                 form = None | ||||||
| 
 | 
 | ||||||
|             reports = view(request, form, *a, **k) |             reports = self.view(self.request, form, *a, **k) | ||||||
| 
 | 
 | ||||||
|             if isinstance(reports, Report): |             if isinstance(reports, Report): | ||||||
|                 reports = [reports] |                 reports = [reports] | ||||||
|  | @ -217,19 +237,12 @@ def report_view(title, form_type=None): | ||||||
|             ] |             ] | ||||||
| 
 | 
 | ||||||
|             ctx = { |             ctx = { | ||||||
|                 "title": title, |                 "title": self.title, | ||||||
|                 "form": form, |                 "form": form, | ||||||
|                 "reports": reports, |                 "reports": reports, | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             return render(request, "registrasion/report.html", ctx) |             return render(self.request, "registrasion/report.html", ctx) | ||||||
| 
 |  | ||||||
|         # Add this report to the list of reports. |  | ||||||
|         _all_report_views.append(inner_view) |  | ||||||
| 
 |  | ||||||
|         # Return the callable |  | ||||||
|         return inner_view |  | ||||||
|     return _report |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_all_reports(): | def get_all_reports(): | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Christopher Neugebauer
						Christopher Neugebauer