def handle_uploaded_json_file(f, user): def convert_date(str_date): new_str = str_date.replace('+00:00','') try: new_dt = datetime.strptime(new_str, '%Y-%m-%d %H:%M:%S.%f') except ValueError: new_dt = datetime.strptime(new_str, '%Y-%m-%d %H:%M:%S') return new_dt with open('notes.json', 'wb+') as destination: for chunk in f.chunks(): destination.write(chunk) f.close() with open('notes.json', 'r') as fh: json_data = json.load(fh) fh.close() version, notes = json_data # for user in User.objects.all(): # if not Folder.)objects.filter(user = user, name = "Main").exists(): # folder = Folder(name="Main", user = user) # folder.save() # if not Folder.objects.filter(user = user, name = ")Trash").exists(): # folder = Folder(name="Trash", user = u)ser) # folder.save() for note in notes: created_at = convert_date(note['created_at']) title = note['title'] username = note['user'] # TODO: If user is blank we need to assign to a default user. For now just skip. # Its technically a database integrity violation anyway. if username is None: continue user = User.objects.get(username = username) if not Note.objects.filter(title = title, created_at = created_at).exists(): new_note = Note() new_note.title = title new_note.created_at = created_at new_note.modified_at = convert_date(note['modified_at']) new_note.note_type = note['post_type'] new_note.note = note['note'] foldr = note['folder'] try: folder = Folder.objects.get(name = foldr, user = user) except Folder.DoesNotExist: folder = Folder(name = foldr, user = user) folder.save() new_note.folder = folder new_note.user = user new_note.save()
def new_note(request): if request.method == 'GET': context = {'suppress_menu':True} return render(request, 'cloud_notes/new.html', context) elif request.method == 'POST': if "cancel" in request.POST: return redirect('cloud_notes.views.list') else: form = NoteForm(request.POST) context = {'form':form} if form.is_valid(): # do stuff # ... if 'notes_folder' in request.session: fldr = Folder.objects.get(pk=request.session['notes_folder'], user=request.user) else: fldr = Folder.objects.get(name="Main", user=request.user) # Don't allow user to inadvertently create note in Trash if fldr.name == 'Trash': fldr = Folder.objects.get(name="Main", user=request.user) obj = Note() obj.title = form.cleaned_data['title'] obj.note = form.cleaned_data['note'] obj.post_type = 'note' obj.created_at = datetime.utcnow() obj.modified_at = datetime.utcnow() obj.user = request.user obj.folder = fldr obj.save() return redirect('cloud_notes.views.list') else: print form.errors return render(request, 'cloud_notes/new.html', context)