Skip to content

Commit

Permalink
Added code for new models
Browse files Browse the repository at this point in the history
  • Loading branch information
amarkamthe committed Nov 9, 2017
1 parent a77c169 commit 95d268d
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 39 deletions.
57 changes: 32 additions & 25 deletions sponsor/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,19 @@ class SponsorAdmin(admin.ModelAdmin):

admin.site.register(Sponsor, SponsorAdmin)
#admin.site.register(SponsorContact)
class SponsorProjectDetailsSubFieldsInline(admin.TabularInline):
model = SponsorProjectDetailsSubFields
min_num = 1
extra = 0

class SponsorProjectDetailsAdmin(admin.ModelAdmin):
list_display = ('sponsor', 'slum', 'sponsor_project', 'quarter', 'status', 'household_code')
list_display = ('sponsor', 'slum', 'sponsor_project', 'household_code')
#readonly_fields = ['household_code']
raw_id_fields = ['slum', 'sponsor_project']
search_fields = ['slum__name', 'sponsor__organization_name', 'sponsor_project__name']
ordering = ['sponsor', 'slum', 'sponsor_project']
list_filter = ['sponsor_project__sponsor']
inlines = [ SponsorProjectDetailsSubFieldsInline ]

class Media:
js = ['js/collapse_household_code.js']
Expand All @@ -26,30 +33,30 @@ def slum(self, obj):
def sponsor_project(self, obj):
return obj.sponsor_project.name

def quarter(self, obj):
return obj.get_quarter_display()

def status(self, obj):
return obj.get_status_display()

def get_search_results(self, request, queryset, search_term):
'''
:param request:
:param queryset:
:param search_term:
:return: queryset
Function for adding custom filters for choice field options
'''
queryset, use_distinct = super(SponsorProjectDetailsAdmin, self).get_search_results(request, queryset, search_term)

quarter_options = filter(lambda x: search_term.lower() in x[1].lower(), QUARTER_CHOICES)
quarter_options = map(lambda x: x[0], quarter_options)
status_options = filter(lambda x: search_term.lower() in x[1].lower(), SPONSORSTATUS_CHOICES)
status_options = map(lambda x: x[0], status_options)
queryset |= self.model.objects.filter(quarter__in=quarter_options)
queryset |= self.model.objects.filter(status__in=status_options)
return queryset, use_distinct
# def quarter(self, obj):
# return obj.get_quarter_display()
#
# def status(self, obj):
# return obj.get_status_display()
#
# def get_search_results(self, request, queryset, search_term):
# '''
# :param request:
# :param queryset:
# :param search_term:
# :return: queryset
#
# Function for adding custom filters for choice field options
# '''
# queryset, use_distinct = super(SponsorProjectDetailsAdmin, self).get_search_results(request, queryset, search_term)
#
# quarter_options = filter(lambda x: search_term.lower() in x[1].lower(), QUARTER_CHOICES)
# quarter_options = map(lambda x: x[0], quarter_options)
# status_options = filter(lambda x: search_term.lower() in x[1].lower(), SPONSORSTATUS_CHOICES)
# status_options = map(lambda x: x[0], status_options)
# queryset |= self.model.objects.filter(quarter__in=quarter_options)
# queryset |= self.model.objects.filter(status__in=status_options)
# return queryset, use_distinct

admin.site.register(SponsorProjectDetails, SponsorProjectDetailsAdmin)

Expand Down
37 changes: 23 additions & 14 deletions sponsor/birt_ff_report.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from .models import *
from component.cipher import *
from django.conf import settings
from datetime import datetime
Expand All @@ -15,12 +14,12 @@ def __init__(self, record_id):

def generate(self):
cipher = AESCipher()
obj_slum = self.project_detail.slum
logged_sponsor = self.project_detail.sponsor_project.sponsor
obj_slum = self.project_detail.sponsor_project_details.slum
logged_sponsor = self.project_detail.sponsor_project_details.sponsor_project.sponsor
sponsored_household = self.project_detail.household_code
rp_slum_code = str(obj_slum.shelter_slum_code)
sub_folder = str(rp_slum_code)+str(len(sponsored_household)) + str(datetime.now())
folder_name = os.path.join(settings.BASE_DIR, 'media', ZIP_PATH, str(logged_sponsor.organization_name))
sub_folder = (str(rp_slum_code)+str(len(sponsored_household)) + str(datetime.now())).replace(' ','_')
folder_name = os.path.join(settings.BASE_DIR, 'media', ZIP_PATH, str(logged_sponsor.organization_name).replace(' ', '_'))
if not os.path.exists(folder_name):
os.mkdir(folder_name)
folder_name = os.path.join(folder_name, sub_folder)
Expand All @@ -30,16 +29,26 @@ def generate(self):
execute_command = []
for household_code in sponsored_household:
key = cipher.encrypt(str(rp_slum_code) + '|' + str(household_code) + '|' + str(logged_sponsor.user.id))
file = os.path.join(folder_name, "/household_code_" + str(household_code) + ".pdf")
file = os.path.join(folder_name, "household_code_" + str(household_code) + ".pdf")
com = settings.BIRT_REPORT_CMD.format(file , key)
execute_command.append(com)
p = subprocess.Popen(com,#[sys.executable, os.path.join(settings.BASE_DIR, 'sponsor', 'birt_ff_report.py')],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
p.communicate()
print p.stderr.read()
shutil.make_archive(folder_name, 'zip', os.path.join(folder_name,'..'))
print com
#execute_command.append(com)
p = subprocess.Popen(com, shell = True,#[sys.executable, os.path.join(settings.BASE_DIR, 'sponsor', 'birt_ff_report.py')],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
#x,y = p.communicate()

#print x,y
os.system(com)

shutil.make_archive(folder_name, 'zip',folder_name)
delete_command = "rm -rf " + folder_name
os.system(delete_command)

self.project_detail.objects.update(zip_file=folder_name+'.zip', zip_created_on=datetime.now())
if self.project_detail.zip_file:
storage, path = self.project_detail.zip_file.storage, self.project_detail.zip_file.path
storage.delete(path)

#self.project_detail.zip_file=os.path.join('media', ZIP_PATH, str(logged_sponsor.organization_name).replace(' ','_'),sub_folder+'.zip')
#self.project_detail.zip_created_on=datetime.now()
self.project_detail.__class__.objects.filter(pk=self.project_detail.id).update(zip_created_on=datetime.now(),zip_file=os.path.join( ZIP_PATH, str(logged_sponsor.organization_name).replace(' ','_'),sub_folder+'.zip'))

0 comments on commit 95d268d

Please sign in to comment.