Skip to content

Instantly share code, notes, and snippets.

@callen23dc
Created March 19, 2010 17:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save callen23dc/337876 to your computer and use it in GitHub Desktop.
Save callen23dc/337876 to your computer and use it in GitHub Desktop.
View:
def bimport_add(request):
error = None
if request.method == "POST":
biform = BimportForm(request.POST, request.FILES)
if biform.is_valid():
bimport = biform.save()
#p = Popen(['python', 'utils/processing.py', '%s' % bimport.id])
process_bimport(bimport)
else:
biform = BimportForm()
return render_to_response('dashboard/form.html', {
'form':biform,
'error':error
}, context_instance=RequestContext(request))
Controller:
import xlrd
from merx.models import Subscription, Newsletter
import datetime
from dashboard.controllers import add_time
from time import sleep
def load_sheet(datafile):
return xlrd.open_workbook(datafile).sheet_by_index(0)
def import_subs(bimport):
sh = load_sheet(bimport.datafile.path)
for r in range(sh.nrows):
email = sh.cell(r, 0)
for nl in bimport.newsletters.all():
sub = Subscription.objects.create(
newsletter = nl,
email = email,
public = 0,
status = 1,
start_date = datetime.date.today(),
end_date = add_time(datetime.date.today(), 12)
)
bis = Bimport_Subscription.objects.create(
bimport = bimport,
email = sub.email,
conversion_date = None
)
return 1
def process_bimport(bimport):
import ipdb; ipdb.set_trace()
bi = bimport
if not bi.status == 'P':
bi.status = 'P'
bi.save()
if int(bi.content_type.id) == 116:
code = import_subs(bi)
if code == 1:
bi.status = 'D'
bi.error = ''
bi.save()
else:
bi.status = 'E'
else:
bi.status = 'E'
bi.error = "Content type unrecognized, don't know what to do with this bulk import."
bi.save()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment