app/projrev/views/proposal.py
changeset 13 684540719344
parent 12 aac4944aca52
child 14 9d720dfded68
equal deleted inserted replaced
12:aac4944aca52 13:684540719344
    84   proposal = None
    84   proposal = None
    85 
    85 
    86   if prop_form.is_valid():
    86   if prop_form.is_valid():
    87     cleaned_data = prop_form.cleaned_data
    87     cleaned_data = prop_form.cleaned_data
    88 
    88 
    89     # Generate MICR code
    89     if micr_code:
    90     cleaned_data['micr_code'] = '%s%s%s%d' % (
    90       project = Project.objects.get(micr_code=micr_code)
    91         cleaned_data['state'], cleaned_data['district'],
    91       project.line_item = Project.getLineItem(cleaned_data['line_item'])
    92         cleaned_data['line_item'], 
    92       project.institution = cleaned_data['institution']
    93         int(time.time() * 1000) % 1000000000)
    93       project.state = Project.getState(cleaned_data['state'])
    94 
    94       project.district = Project.getDistrict(cleaned_data['district'])
    95     cleaned_data['line_item'] = Project.getLineItem(cleaned_data['line_item'])
    95     else:
    96     cleaned_data['state'] = Project.getState(cleaned_data['state'])
    96       # Generate MICR code
    97     cleaned_data['district'] = Project.getDistrict(cleaned_data['district'])
    97       cleaned_data['micr_code'] = '%s%s%s%d' % (
    98 
    98           cleaned_data['state'], cleaned_data['district'],
    99     prop_form.cleaned_data = cleaned_data
    99           cleaned_data['line_item'], 
   100 
   100           int(time.time() * 1000) % 1000000000)
   101     # If the form is valid create a new project or update the project
   101 
   102     # if it already exists from the form.
   102       cleaned_data['line_item'] = Project.getLineItem(cleaned_data['line_item'])
   103     project = prop_form.save()
   103       cleaned_data['state'] = Project.getState(cleaned_data['state'])
       
   104       cleaned_data['district'] = Project.getDistrict(cleaned_data['district'])
       
   105 
       
   106       prop_form.cleaned_data = cleaned_data
       
   107 
       
   108       # If the form is valid create a new project or update the project
       
   109       # if it already exists from the form.
       
   110       project = prop_form.save()
       
   111 
       
   112       project.micr_code = cleaned_data['micr_code']
   104 
   113 
   105     project.status = 'new'
   114     project.status = 'new'
   106     project.micr_code = cleaned_data['micr_code']
   115     micr_code = project.micr_code
   107     micr_code = cleaned_data['micr_code']
       
   108 
   116 
   109     project.save()
   117     project.save()
   110 
   118 
   111     # Create a proposal for the project.
   119     if prop_form.cleaned_data['document']:
   112     proposal = project.proposal_set.create(
   120       # Create a proposal for the project.
   113         document=prop_form.cleaned_data['document'], 
   121       proposal = project.proposal_set.create(
   114         submitted_by=request.user, rev_num = 0)
   122           document=prop_form.cleaned_data['document'], 
   115 
   123           submitted_by=request.user, rev_num = 0)
   116     proposal.save()
   124 
       
   125       proposal.save()
   117 
   126 
   118     return HttpResponseRedirect(
   127     return HttpResponseRedirect(
   119         reverse('app.projrev.views.proposal.submit', args=(micr_code,)))
   128         reverse('app.projrev.views.proposal.submit', args=(micr_code,)))
   120 
   129 
   121   return HttpResponseRedirect('')
   130   return HttpResponseRedirect('')
   137         'district': Project.getDistrictCode(project.district),
   146         'district': Project.getDistrictCode(project.district),
   138         }
   147         }
   139     prop_form = projrev_forms.ProposalForm(
   148     prop_form = projrev_forms.ProposalForm(
   140         initial=initial_vals, instance=project)
   149         initial=initial_vals, instance=project)
   141 
   150 
   142     proposal_path = str(
   151     proposal = project.proposal_set.all().order_by('-submitted_on')[0]
   143         project.proposal_set.all().order_by('-submitted_on')[0].document)
   152 
   144 
   153     if proposal:
   145     proposal_name = proposal_path.split('/')[-1]
   154       proposal_path = str(proposal.document)
   146 
   155 
   147     context['proposal_path'] = proposal_path
   156       proposal_name = proposal_path.split('/')[-1]
   148     context['proposal_name'] = proposal_name
   157 
       
   158       context['proposal_path'] = proposal_path
       
   159       context['proposal_name'] = proposal_name
       
   160       context['last_submitted'] = proposal.submitted_on 
   149 
   161 
   150     if 'HTTP_REFERER' in request.META:
   162     if 'HTTP_REFERER' in request.META:
   151       referer = request.META['HTTP_REFERER'].split('/')
   163       referer = request.META['HTTP_REFERER'].split('/')
   152       if referer[-1]:
   164       if referer[-1]:
   153         ref = referer[-1]
   165         ref = referer[-1]
   156         
   168         
   157       if ref == 'create':
   169       if ref == 'create':
   158         context['created_now'] = True
   170         context['created_now'] = True
   159 
   171 
   160     context['micr_code'] = project.micr_code
   172     context['micr_code'] = project.micr_code
       
   173 
       
   174     reviews = project.review_set.all().order_by('-reviewed_on')
       
   175     if reviews:
       
   176       context['last_reviewed'] = reviews[0].reviewed_on
       
   177       context['nr_reviews'] = len(reviews)
       
   178  
   161   else:
   179   else:
   162     prop_form = projrev_forms.ProposalForm()
   180     prop_form = projrev_forms.ProposalForm()
   163 
   181 
   164   context['form'] = prop_form
   182   context['form'] = prop_form
   165 
   183 
   219   """
   237   """
   220 
   238 
   221   if not micr_code:
   239   if not micr_code:
   222     template = 'projrev/proposal/list.html'
   240     template = 'projrev/proposal/list.html'
   223     context = {
   241     context = {
   224         'projects': Project.objects.all(),
   242         'projects': Project.objects.all().exclude(status__exact='invalid'),
   225         'row_url': '/proposal/review/',
   243         'row_url': '/proposal/review/',
   226         }
   244         }
   227 
   245 
   228     return render_to_response(template, RequestContext(request, context))
   246     return render_to_response(template, RequestContext(request, context))
   229 
   247