Form changes.
--- a/app/projrev/models.py Mon Aug 10 17:18:07 2009 +0530
+++ b/app/projrev/models.py Mon Aug 10 19:38:53 2009 +0530
@@ -692,6 +692,22 @@
institution = models.CharField(max_length=256)
institution.help_text = 'Give the full name of your institution.'
+ # Field containing the title of the proposal
+ title = models.CharField(max_length=2000)
+ title.help_text = 'Give the complete title of your proposal.'
+
+ # Field containing the title of the proposal
+ address = models.CharField(max_length=2000)
+ address.help_text = 'Enter your complete address.'
+
+ # Field containing the city
+ city = models.CharField(max_length=1000)
+ city.help_text = 'Enter the city name.'
+
+ # Field containing the pin code
+ pin_code = models.IntegerField()
+ pin_code.help_text = "Enter your address's pin code."
+
# Field containing the state to which the institution belongs to.
state = models.CharField(
max_length=256,
@@ -701,7 +717,8 @@
# Field containing the district to which the institution belongs
# to in the state of India.
district = models.CharField(max_length=256,
- choices=sort_dict(DISTRICT_CHOICES))
+ choices=sort_dict(DISTRICT_CHOICES),
+ null=True)
district.help_text = ('First select the state before selecting the district. '
'Select the district of the state where this project is taken up.')
@@ -868,42 +885,42 @@
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])
attribute1.verbose_name = ('Feasibility of the proposed activity and the '
'appropriateness of the time frame.')
-
+
attribute2 = models.PositiveSmallIntegerField(
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])
- attribute1.verbose_name = ('Uniqueness/novelty/innovation of the said '
+ attribute2.verbose_name = ('Uniqueness/novelty/innovation of the said '
'proposal')
attribute3 = models.PositiveSmallIntegerField(
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])
- attribute1.verbose_name = ('Scope for inter-institutional collaboration and '
+ attribute3.verbose_name = ('Scope for inter-institutional collaboration and '
'development.')
attribute4 = models.PositiveSmallIntegerField(
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])
- attribute1.verbose_name = ('The organisation of the programme to be carried '
+ attribute4.verbose_name = ('The organisation of the programme to be carried '
'out.')
attribute5 = models.PositiveSmallIntegerField(
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])
- attribute1.verbose_name = ('The details of the work as the outlined by the '
+ attribute5.verbose_name = ('The details of the work as the outlined by the '
'principal investigator(PI).')
attribute6 = models.PositiveSmallIntegerField(
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])
- attribute1.verbose_name = ('Sufficiency of funds as requested by the PI.')
+ attribute6.verbose_name = ('Sufficiency of funds as requested by the PI.')
attribute7 = models.PositiveSmallIntegerField(
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])
- attribute1.verbose_name = ('Social impact/reach/spread of the outcome of the '
+ attribute7.verbose_name = ('Social impact/reach/spread of the outcome of the '
'proposal.')
attribute8 = models.PositiveSmallIntegerField(
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])
- attribute1.verbose_name = ('Contribution of the proposal to minimizing the '
+ attribute8.verbose_name = ('Contribution of the proposal to minimizing the '
'digital divide in our country.')
attribute9 = models.PositiveSmallIntegerField(
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)])
- attribute1.verbose_name = ('Any other matter which is likely to affect the '
+ attribute9.verbose_name = ('Any other matter which is likely to affect the '
'execution of the project(max 600 characters).')
--- a/app/projrev/views/helpers/forms.py Mon Aug 10 17:18:07 2009 +0530
+++ b/app/projrev/views/helpers/forms.py Mon Aug 10 19:38:53 2009 +0530
@@ -27,8 +27,8 @@
# fields in the Project that must not appear in the form, but have
# be automatically generated.
- fields = ('line_item', 'institution', 'state',
- 'district', 'mobile_num', 'fax_num')
+ fields = ('title', 'line_item', 'institution', 'address', 'city',
+ 'pin_code', 'state', 'district', 'mobile_num', 'fax_num')
class ReviewForm(forms.ModelForm):
--- a/app/projrev/views/proposal.py Mon Aug 10 17:18:07 2009 +0530
+++ b/app/projrev/views/proposal.py Mon Aug 10 19:38:53 2009 +0530
@@ -167,16 +167,18 @@
prop_form = projrev_forms.ProposalForm(
initial=initial_vals, instance=project)
- proposal = project.proposal_set.all().order_by('-submitted_on')[0]
-
- if proposal:
- proposal_path = str(proposal.document)
+ proposals = project.proposal_set.all()
+ if proposals:
+ proposal = proposals.order_by('-submitted_on')[0]
- proposal_name = proposal_path.split('/')[-1]
+ if proposal:
+ proposal_path = str(proposal.document)
- context['proposal_path'] = proposal_path
- context['proposal_name'] = proposal_name
- context['last_submitted'] = proposal.submitted_on
+ proposal_name = proposal_path.split('/')[-1]
+
+ context['proposal_path'] = proposal_path
+ context['proposal_name'] = proposal_name
+ context['last_submitted'] = proposal.submitted_on
if 'HTTP_REFERER' in request.META:
referer = request.META['HTTP_REFERER'].split('/')
@@ -400,6 +402,33 @@
return HttpResponse(None)
+def getNewDistrictsForState(request):
+ """Get initial district for state.
+ """
+
+ get_params = request.GET
+ if get_params:
+ st_code = get_params['_value']
+ dt_dict = Project.DISTRICT_CHOICES
+
+ # Get the Districts corresponding to the given State code.
+ dt_names = {}
+ count = 1
+ for dt_code in dt_dict:
+ if dt_code[:2] == st_code:
+ dt_names[dt_code] = dt_dict[dt_code]
+ count += 1
+
+ # Sort the List based on District Name.
+ dt_send = [{'': "---------"}]
+ dt_names_sorted = sorted(dt_names.items(), key=lambda (k,v): (v,k))
+ for dt_code, dt_name in dt_names_sorted:
+ dt_send.append({dt_code: dt_name})
+
+ return HttpResponse(json.dumps(dt_send))
+
+ return HttpResponse(None)
+
@access.register('reviewer')
@access.checkAccess
def listMyReviews(request):
--- a/app/templates/projrev/proposal/review.html Mon Aug 10 17:18:07 2009 +0530
+++ b/app/templates/projrev/proposal/review.html Mon Aug 10 19:38:53 2009 +0530
@@ -21,6 +21,13 @@
<div class='review-center-box'>
<div class='review-left'>
+ Title:
+ </div>
+ <div class='review-right'>
+ {{ project.title }}
+ </div>
+ <br/>
+ <div class='review-left'>
Project MICR Code:
</div>
<div class='review-right'>
@@ -42,6 +49,27 @@
</div>
<br/>
<div class='review-left'>
+ Address:
+ </div>
+ <div class='review-right'>
+ {{ project.address }}
+ </div>
+ <br/>
+ <div class='review-left'>
+ City:
+ </div>
+ <div class='review-right'>
+ {{ project.city }}
+ </div>
+ <br/>
+ <div class='review-left'>
+ PIN Code:
+ </div>
+ <div class='review-right'>
+ {{ project.pin_code }}
+ </div>
+ <br/>
+ <div class='review-left'>
State:
</div>
<div class='review-right'>
--- a/app/templates/projrev/proposal/submit.html Mon Aug 10 17:18:07 2009 +0530
+++ b/app/templates/projrev/proposal/submit.html Mon Aug 10 19:38:53 2009 +0530
@@ -8,8 +8,23 @@
$('#id_state').chainSelect('#id_district','/proposal/submit/get_dfors');
});
$(document).ready(function() {
- $.get('/proposal/submit/get_dfors', function() {
- $('#id_district').html('<option value="">---------</option>');
+ dt_val = $('#id_district').val();
+ $.getJSON('/proposal/submit/get_new_dfors',
+ { '_value': $('#id_state').val() },
+ function(data) {
+ var option_html = "";
+ for (i in data) {
+ if (data[i]) {
+ for (key in data[i]) {
+ if (key == dt_val) {
+ option_html += '<option selected="selected" value="'+ key +'">'+ data[i][key] +'</option>';
+ } else {
+ option_html += '<option value="'+ key +'">'+ data[i][key] +'</option>';
+ }
+ }
+ }
+ }
+ $('#id_district').html(option_html);
});
});
</script>
--- a/app/urls.py Mon Aug 10 17:18:07 2009 +0530
+++ b/app/urls.py Mon Aug 10 19:38:53 2009 +0530
@@ -24,6 +24,8 @@
(r'^proposal/submit/$', 'app.projrev.views.proposal.getMicr'),
(r'^proposal/submit/get_dfors$',
'app.projrev.views.proposal.getDistrictsForState'),
+ (r'^proposal/submit/get_new_dfors$',
+ 'app.projrev.views.proposal.getNewDistrictsForState'),
(r'^proposal/submit/create/$', 'app.projrev.views.proposal.submit'),
# disabled for now.
# (r'^proposal/withdraw/(?P<micr_code>[A-Z]{6}\d{9})/$',