def setUp(self): self.user_1 = User.objects.create_user('Chevy Chase', '*****@*****.**', 'chevyspassword') self.profile = Profile(profile_photo='imageurl.png', bio='Lorem ipsum', user=self.user_1) self.image = Image(image='newimageurl.png', name='Test Image', caption='Lorem ipsum', profile=self.profile)
def get(self, request, format=None): group_id = request.query_params.get('group_id') url = 'https://api.flickr.com/services/rest/?method=' \ 'flickr.groups.pools.getPhotos&api_key=' \ '4fb0946eb8e41c0121381f40e772c414&group_id=' \ '{0}&format=json&nojsoncallback=1'.format(group_id) r = requests.get(url) if r.status_code == 200: res = r.json() else: raise Exception('An error has occurred') res_list = [] group, created = Group.objects.get_or_create(user=request.user, group_id=group_id) for image in res['photos']['photo']: image_id = image['id'] title = image['title'] date = arrow.get(image['dateadded']).datetime is_public = True if image['ispublic'] == 1 else False is_friend = True if image['isfriend'] == 1 else False is_family = True if image['isfamily'] == 1 else False # Get URL of the image by image_id image_url = 'https://api.flickr.com/services/rest/?method=' \ 'flickr.photos.getInfo&api_key=' \ '4fb0946eb8e41c0121381f40e772c414&' \ 'photo_id={0}&format=' \ 'json&nojsoncallback=1'.format(image_id) r = requests.get(image_url) if r.status_code == 200: result = r.json() else: raise Exception('An error has occurred') image_url = result['photo']['urls']['url'][0]['_content'] description = result['photo']['description']['_content'] image = Image(group=group, image_id=image_id, title=title, added_date=date, is_public=is_public, is_friend=is_friend, is_family=is_family, image_url=image_url, description=description) res_list.append(image) Image.objects.bulk_create(res_list, batch_size=50) return Response(status=status.HTTP_200_OK)
def module_create(request): if request.method == 'POST': module_form = ModuleCreateForm(request.POST) if module_form.is_valid(): module_type = module_form.cleaned_data['module_type'] module = module_form.save(commit=False) user = Profile.objects.get(user=request.user) print(f'We have a module! {module}') print(f'Type is: \'{module_type}\'') #extended_form = None # NOTE: this is also temporary, use actual module ids extended_form = None extended_module = None if str(module_type) == 'Datetime': extended_form = DateForm(request.POST) elif str(module_type) == 'Forecast': extended_form = ForecastForm(request.POST) elif str(module_type) == 'Photos': extended_form = PhotosForm(request.POST) formset = ImageFormSet(request.POST, request.FILES, queryset=Image.objects.none()) if extended_form.is_valid() and formset.is_valid(): extended_module = extended_form.save(commit=False) for form in formset.cleaned_data: # prevent crashing if the user doesn't upload all the photos if form: image_form = form['image'] public = form['public'] image = Image(owner=user, photos_module=extended_module, image=image_form, public=public) image.save() elif str(module_type) == 'Weather': extended_form = WeatherForm(request.POST) else: pass # Temporary save the module if it wasn't saved above if extended_form.is_valid() and extended_module is None: extended_module = extended_form.save(commit=False) # Save all data from the form if extended_form.is_valid(): module.owner = user module.save() extended_module.module = module extended_module.save() # TODO: complete this module_style = get_template('dashboard/includes/module_style.html') module_content = get_template('dashboard/includes/module_content.html') page_content = get_content(request, module) update_method = get_update_method(module) module_script = get_template('dashboard/includes/module_script.html') context = { 'id': module.id, 'type': module.module_type.module_type, # NOTE: adding a style tag to head may not work, may need to put this as a 'style' within the div # it seems to work, however 'style': module_style.render({ 'id': module.id, 'type': module.module_type.module_type, 'values': { 'z-index': module.z_index, 'top': module.y, 'left': module.x, 'color': module.text_color, }, }), # Module's style 'content': module_content.render({ 'id': module.id, 'type': module.module_type.module_type, 'content': page_content['content'], 'moveable': page_content['moveable'], 'ajax': True, 'values': { 'zindex': module.z_index, 'top': module.y, 'left': module.x, 'color': module.text_color, } }), # Module's div 'values': { 'zindex': module.z_index, 'top': module.y, 'left': module.x, 'color': module.text_color, 'moveable': page_content['moveable'], }, 'script': module_script.render({ }), # Module's script 'method': update_method, } return JsonResponse(context) ''' if dt_form.is_valid(): dt = dt_form.save(commit=False) module.owner = user module.save() dt.module = module dt.save() print(f'We have DT module! {dt}') else: print('Form was not valid') elif str(module_type) == 'Forecast': forecast_form = ForecastForm(request.POST) if forecast_form.is_valid(): forecast = forecast_form.save(commit=False) module.owner = user module.save() forecast.module = module forecast.save() print(f'We have Forecast module! {forecast}') else: print('Form was not valid') elif str(module_type) == 'Photos': photos_form = PhotosForm(request.POST)#, module=module)#, instance=module) formset = ImageFormSet(request.POST, request.FILES, queryset=Image.objects.none()) if photos_form.is_valid() and formset.is_valid(): photos = photos_form.save(commit=False) module.owner = user module.save() photos.module = module photos.save() print(f'We have Photos module! {photos}') for form in formset.cleaned_data: # prevent crashing if the user doesn't upload all the photos if form: image_form = form['image'] public = form['public'] image = Image(owner=user, photos_module=photos, image=image_form, public=public) image.save() elif str(module_type) == 'Weather': weather_form = WeatherForm(request.POST)#, module=module)#, instance=module) if weather_form.is_valid(): weather = weather_form.save(commit=False) module.owner = user module.save() weather.module = module weather.save() print(f'We have Weather module! {weather}') else: # TODO: what do? pass ''' #return redirect('user-modules') # Can also redirect to an object's get_absolute_url() else: module_form = ModuleCreateForm() context = { 'module_form': module_form } template = get_template('dashboard/add_module.html') return JsonResponse({'content': template.render(context, request=request)})