def generate_cards(request, spreadsheet_title, worksheet_title): settings = request.user.get_profile() fieldList = [] titleTags = [] if request.method == 'POST': postdata = request.POST while postdata.__contains__(str(len(fieldList))): fieldList.append(postdata[str(len(fieldList))]) if not fieldList.__contains__('back'): request.session['backrequired'] = True return HttpResponseRedirect(reverse(choose_fields, args=[spreadsheet_title, worksheet_title])) titleTags = postdata['titleTags'].split(',') doNotImportList = postdata.getlist('donotimport') removeRows(doNotImportList, settings) rows = Row.objects.filter(settings=settings) for row in rows: front = '' back = '' tags = [] tags.extend(titleTags) sources = [] private = False donottest = False priority = '3' for i in range(len(fieldList)): # NASTY CODE SMELL - FIX UP TODO try: field = fieldList[i] col = row.columns[i] if field == 'front': front += col elif field == 'back': back += col elif field == 'tags': if col.strip() != '': tags.append(col) elif field == 'sources': if col.strip() != '': sources.append(col) elif field == 'private': private = (col.lower() == 'true' or col.lower() == 'x') elif field == 'donottest': donottest = (col.lower() == 'true' or col.lower() == 'x') elif field == 'priority': if col.lower() == '3' or col.lower() == 'average': priority = '3' elif col.lower() == 'l' or col.lower() == 'low': priority = '1' elif col.lower() == '5' or col.lower() == 'high': priority = '5' except: continue tagField = ", ".join(tags) card = createCard(settings, front, back, private, priority, donottest, tagField, sources, None, False) return HttpResponse("Saved %s new cards" % (len(rows))) max_cols = len(reduce(lambda x,y: x if len(x.columns) > len(y.columns) else y, rows).columns) return HttpResponse('success')
def generate_cards(request, spreadsheet_title, worksheet_title): settings = request.user.get_profile() fieldList = [] titleTags = [] if request.method == 'POST': postdata = request.POST while postdata.__contains__(str(len(fieldList))): fieldList.append(postdata[str(len(fieldList))]) if not fieldList.__contains__('back'): request.session['backrequired'] = True return HttpResponseRedirect( reverse(choose_fields, args=[spreadsheet_title, worksheet_title])) titleTags = postdata['titleTags'].split(',') doNotImportList = postdata.getlist('donotimport') removeRows(doNotImportList, settings) rows = Row.objects.filter(settings=settings) for row in rows: front = '' back = '' tags = [] tags.extend(titleTags) sources = [] private = False donottest = False priority = '3' for i in range(len(fieldList)): # NASTY CODE SMELL - FIX UP TODO try: field = fieldList[i] col = row.columns[i] if field == 'front': front += col elif field == 'back': back += col elif field == 'tags': if col.strip() != '': tags.append(col) elif field == 'sources': if col.strip() != '': sources.append(col) elif field == 'private': private = (col.lower() == 'true' or col.lower() == 'x') elif field == 'donottest': donottest = (col.lower() == 'true' or col.lower() == 'x') elif field == 'priority': if col.lower() == '3' or col.lower() == 'average': priority = '3' elif col.lower() == 'l' or col.lower() == 'low': priority = '1' elif col.lower() == '5' or col.lower() == 'high': priority = '5' except: continue tagField = ", ".join(tags) card = createCard(settings, front, back, private, priority, donottest, tagField, sources, None, False) return HttpResponse("Saved %s new cards" % (len(rows))) max_cols = len( reduce(lambda x, y: x if len(x.columns) > len(y.columns) else y, rows).columns) return HttpResponse('success')
def createCardFromEmail(front, back, settings, fields): tagField = ", ".join(fields['t']) sourceField = ", ".join(fields['s']) card = createCard(settings, front, back, False, 'a', False, tagField, sourceField, None)