def witness(report, video_path): print('Getting detections...') frame_detections, last_frame = detection.get_frame_detections(video_path) print('Getting colliders...') colliders = sorted(frame_detections[-1], key=lambda x: x.area, reverse=True)[:2] print(len(colliders)) print('Getting surrounding bbox...') surr_bbox = utils.get_surrounding_box(colliders[0].bbox, colliders[1].bbox) surr_crop = last_frame[surr_bbox[1]:surr_bbox[1]+surr_bbox[3], surr_bbox[0]:surr_bbox[0]+surr_bbox[2], :] print('Saving images...') car1_img = Image.from_arr(colliders[0].img, report.id) car2_img = Image.from_arr(colliders[1].img, report.id) accident_img = Image.from_arr(last_frame, report.id) surr_img = Image.from_arr(surr_crop, report.id) report.images.append(car1_img) report.images.append(car2_img) report.images.append(accident_img) report.images.append(surr_img) report.analysis_complete = True report.car_color = "{},{}".format(color.rgb_to_hex(*color.dominant_color(colliders[0].img)), color.rgb_to_hex(*color.dominant_color(colliders[1].img))) db.session.commit() print('Completed analysis...') return True
def image_upload(request): pass """ Upload an image :param request: HttpRequest :return: JsonResponse """ status, msg = False, "Invalid Request" form = ImageUploadForm(request.POST, request.FILES) if request.user.is_authenticated and form.is_valid(): t = Tools.handle_uploaded_file(request.FILES['file'], form.extension) if t[0]: #delete profile pic if it exist if form.category == "PI": pi = Image_DB.objects.filter(username=form.username, category=form.category) i = Image_DB(username=form.username, category=form.category, url=t[1]) if Image.delete_image(pi.url, request, form.category): i.save() status, msg = True, "Success" return JsonResponse({"status": status, "msg": msg})
def post_image_to_person(args, id): img = Image(**args) add_new_obj(img) #TODO: call to FaceDetector to wake up if not currently woken up, as there's a new image. #Think thorugh logic need to be absolutely sure that FaceDetector checks for this. # Send person id to the FaceDetector and tell it to add to the face: # profile_face=True, person_id_by_human, image_id, face_path return create_response(img.to_dict(), 201)
def make_image(**kwargs): user = create_user() create_account(username=user.username, **kwargs) with open('default.JPG', 'rb') as f: file = File(f) img = Image(image=file, user=user) img.save() return img
def test_save_image_without_pic(): image = Image( title='my picture', description='my description', ) image.save() assert image.title == 'my picture' assert image.description == 'my description'
def create(self, validated_data): user = None request = self.context.get("request") if request and hasattr(request, "user"): user = request.user image_instance = Image(**validated_data) image_instance.user = user image_instance.save() return image_instance
def take_photo(photo_id, group, sample_id): ''' Calls the Picam class to have the hardware take a picture. Returns a Picture object ''' camera = Picam() file_path = camera.take_still(str(photo_id) + '.jpg') image = Image(id=photo_id, group=group, sample_id=sample_id, type=Image.PHOTO, subject=group.subject, file_path=file_path) image.save() return image
def create_images(link_array, c_id): """ Inserts every image in the array with a category Parameters ---------- link_array : array an array of links. c_id : int id of a category """ for link in link_array: Image.create_image(link=link[0], description='', attribute=link[1], c_id=c_id)
def image_upload(request): if request.method != "POST": return HttpResponse() source = request.FILES.get('file') if source != None: source.name = ImageTool.get_new_random_file_name(source.name) image = Image( img=source ) image.save() return HttpResponse(json.dumps({ 'success': True, 'path': image.img.url })) else: return HttpResponse(json.dumps({ 'success': False, }))
def test_parse_image_bad_url(mocker): mocker.patch('api.api.is_valid_url', return_value=False) image_url = 'some url' image = Image( title='my picture', description='my description', ) result = parse_image(image, image_url) assert not result
def test_parse_image_good_url_non_picture(mocker): mocker.patch('api.api.is_valid_url', return_value=True) mocker.patch('api.api.retrieve_image', return_value=(None, None)) image_url = 'some url' image = Image( title='my picture', description='my description', ) result = parse_image(image, image_url) assert not result
def hit(report, video_path): print('Getting detections...') frame_detections, last_frame = detection.get_frame_detections(video_path) print('Finding nested detections...') # Get a list of nested detection pairs by bounding box # pairs = detection.find_nested_detections(frame_detections) print(len(frame_detections)) print('Finding target...') # The largest area is probably the car that hit us target = sorted(frame_detections, key=lambda x: x[0].area, reverse=True)[0] # Extract info from the target car_det = target[0] # license_det = target[1] print('Saving images...') # Save images car_img = Image.from_arr(car_det.img, report.id) # license_img = Image.from_arr(license_det.img, report.id) accident_img = Image.from_arr(last_frame, report.id) print('Adding images to report...') # Add images to the report report.images.append(car_img) # report.images.append(license_img) report.images.append(accident_img) db.session.commit() print('Reporting analysis...') report.analysis_complete = True report.car_color = color.rgb_to_hex(*color.dominant_color(car_det.img)) db.session.commit() print('Completed analysis...') return True
def setUp(self): self.user_data = { "username": "******", "first_name": "black", "last_name": "panther", } user_instance = User(**self.user_data) user_instance.set_password("gamora") user_instance.save() image_instance = Image() image_instance.user = user_instance image_instance.image = File(create_test_image()) image_instance.name = "test" image_instance.color = "BLACK" image_instance.save()
def generate_chart(sample_id, image_id): sample = get_object_or_404(Sample, id=sample_id) readings = csv_string_to_int_list(sample.data) the_title = 'Readings for ' + sample.reading_type + ' sample ' + str(sample_id) if sample.description: the_title += "\n" + sample.description x = range(len(readings)) plt.bar(x, readings, 1, color='black') plt.title(the_title) plt.xlabel('wavelength (340 - 780nm)') plt.ylabel('magnitude') root_directory = '/home/pi/Pictures' # TODO move this into settings:IMAGE_SAVE_PATH file_path = os.path.join(root_directory, (str(image_id) + '.png')) image = Image(id=image_id, group=sample.group, sample_id=sample_id, type=Image.BAR_CHART, file_path=file_path) image.save() # save the image record plt.savefig(file_path) # save the actual file with the image
def fill_tables(): r1 = Repository(repository_path="img_dir", repository_type="local") p1 = Person(name="Nick") p2 = Person(name="John") p3 = Person(name="Mary") img1 = Image(image_path="img1.png", repository=r1) img2 = Image(image_path="img2.png", repository=r1) face1 = Face(face_path=".face/f1.png", image=img1, person_by_human=p1, profile_face=True) face2 = Face(face_path=".face/f2.png", image=img1, person_by_human=p2, profile_face=True) # want to check getting unknown faces np_arr = np.array([1, 2, 4, 3], dtype=np.float32) bin_data = pickle.dumps(np_arr) logger.info(bin_data) face3 = Face(face_path=".face/f3.png", image=img2, embedding=bin_data) db.session.add_all([face1, face2, face3]) db.session.commit() return create_response()
def add_directories(repo): logger.info("adding directories") repo_path = repo.repository_path image_paths = [] extensions = ['.jpg', '.JPG'] for ext in extensions: for path in Path(repo_path).rglob(f"*{ext}"): formatted_path = Path(str(path).replace(repo_path, "")) image_paths.append(str(formatted_path)) images = [] for img_path in image_paths: images.append(Image(image_path=img_path, repository_id=repo.id)) add_new_obj(images) logger.info(image_paths)
def add_image(): item_id = request.form['id'] print(item_id) img = request.files['file'] filename = str(datetime.now().year) + str(datetime.now().month) + str( datetime.now().day) + str(datetime.now().hour) + str( datetime.now().minute) + str(datetime.now().second) + str( datetime.now().microsecond) + "." + img.filename.split(".")[-1] img.save(os.path.join(UPLOAD_DIRECTORY, filename)) itm = Item.query.filter_by(id=item_id).first() im = Image(picname=filename, item=itm) db.session.add(im) db.session.commit() return './pics/' + filename, 201
def generate_chart(sample_id, image_id): sample = get_object_or_404(Sample, id=sample_id) readings = csv_string_to_int_list(sample.data) the_title = 'Readings for ' + sample.reading_type + ' sample ' + str( sample_id) if sample.description: the_title += "\n" + sample.description x = range(len(readings)) plt.bar(x, readings, 1, color='black') plt.title(the_title) plt.xlabel('wavelength (340 - 780nm)') plt.ylabel('magnitude') root_directory = '/home/pi/Pictures' # TODO move this into settings:IMAGE_SAVE_PATH file_path = os.path.join(root_directory, (str(image_id) + '.png')) image = Image(id=image_id, group=sample.group, sample_id=sample_id, type=Image.BAR_CHART, file_path=file_path) image.save() # save the image record plt.savefig(file_path) # save the actual file with the image
def uploadImage(id): image = request.files["image"] try: account_type = int(request.form["account_type"]) except: msg = "Level param doesn't exist or isn't an int" return create_response(status=422, message=msg) account = None try: image_response = imgur_client.send_image(image) except: return create_response(status=400, message=f"Image upload failed") try: if account_type == Account.MENTEE: account = MenteeProfile.objects.get(id=id) elif account_type == Account.MENTOR: account = MentorProfile.objects.get(id=id) else: msg = "Level param doesn't match existing account types" return create_response(status=422, message=msg) except: msg = "" if account_type == Account.MENTEE: msg = "No mentee with that id" elif account_type == Account.MENTOR: msg = "No mentor with that id" logger.info(msg) return create_response(status=422, message=msg) try: if account.image is True and account.image.image_hash is True: image_response = imgur_client.delete_image( account.image.image_hash) except: logger.info("Failed to delete image but saving new image") new_image = Image( url=image_response["data"]["link"], image_hash=image_response["data"]["deletehash"], ) account.image = new_image account.save() return create_response(status=200, message=f"Success")
def create(self, request): try: # tokenの確認 authorization = self.check_authorization() if authorization: # tokenがなかったり違っていたらJSONレスポンスを返す return authorization # JSONの読み込み data = json.loads(request.body) # base64を受け取る image = data['image'] # category category = data['category'] # post_id post_id = data.get('post_id') # base64の確認 if not isinstance(image, six.string_types): # 数字だった場合400を返す return JsonResponse({'message': 'Does not base64'}, status=400) # base64で受け取った値を変換してファイルとして保存できるようにする file = base64.b64decode(image) # ファイルサイズの制限(とりあえず1MB) if len(file) > 1000000: return JsonResponse( {'message': 'Please set it to 1MB or less'}, status=400) except: # JSONの読み込みに失敗 return JsonResponse({'message': 'Post data injustice'}, status=400) # 写真の保存 image = Image.create(file, category, self.token.user_id, post_id) # 写真が保存されたレスポンスを返す results = { 'id': str(image.id), 'image': str(image.image), } return JsonResponse(results, status=201)
def run(self): # Close connections to database, to prevent problems. db.connections.close_all() for row in csv_reader(self.csv_file, self.charset): for value in row: # Skip already saved files. if Image.objects.filter(source__iexact=value): continue image_file, image_type = download_image(value) if image_file is None: continue random_string = get_random_string(RANDOM_FILENAME_LENGTH) # Create database image object and save it. image = Image(source=value, type=image_type) # Saving file as described in # http://www.revsys.com/blog/2014/dec/03/loading-django-files-from-code/ image.file.save('{}.original.{}'.format( random_string, image_type), image_file, save=True)
def uploadFile(): if request.method == "POST": for i in request.files: form_picture = request.files[str(i)] # Create hexa filename random_hex = secrets.token_hex(8) # Get extension of the file _, f_ext = os.path.splitext(form_picture.filename) # build new filename picture_filename = random_hex + f_ext # Build path picture_path = os.path.join("images/", picture_filename) # Resize image output_size = (600, 600) img = PilImage.open(form_picture) img.thumbnail(output_size) # Save image in filesystem img.save(picture_path) # add to database db_image = Image(source=picture_filename) db.session.add(db_image) # COMMIT OUTSIDE OF THE LOOP ? db.session.commit() return json.dumps({"status": "success"})
def populate(): """Method that populates the databse with data""" db.session.close() db.drop_all() db.create_all() User.create_user("admin", "admin") c_male = Category.create_category(name="Jongen", metacategory=Metacategory.gender) c_female = Category.create_category(name="Meisje", metacategory=Metacategory.gender) c_programmer = Category.create_category( name="Programmeur", metacategory=Metacategory.profession) c_writer = Category.create_category(name="Schrijver", metacategory=Metacategory.profession) c_alone = Category.create_category(name="Alleen", metacategory=Metacategory.social) c_together = Category.create_category(name="Samen", metacategory=Metacategory.social) c_gaming = Category.create_category(name="Gamen", metacategory=Metacategory.hobby) c_tennis = Category.create_category(name="Tennis", metacategory=Metacategory.hobby) male_images = [ 'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_male_1_dh1pbq.png', 'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_male_2_bsbqc9.png', 'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276421/Gender/gender_male_3_eknmuv.png', 'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276421/Gender/gender_male_4_d1clch.png' ] female_images = [ 'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276422/Gender/gender_female_1_nph1ga.png', 'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_female_2_fjfxrv.png', 'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_female_3_erg7nd.png', 'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_female_4_b0vc8l.png' ] programmer_images = [ ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276505/Profession/profession_programmer_1_c6pvby.png", "App"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_programmer_2_rbcfov.png", "Laptop"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_programmer_3_cjwqsw.png", "Keyboard"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_programmer_4_xbviey.png", "Website") ] writer_images = [ ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_writer_1_o8xzue.png", "Newspaper"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_writer_2_mmpdnx.png", "Papers"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276505/Profession/profession_writer_3_qyl8aq.png", "Pen"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276505/Profession/profession_writer_4_tbvw0b.png", "Book") ] gaming_images = [ ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_gaming_1_tlfl07.png", "Game Controller"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_gaming_2_ruribs.png", "Game Controller"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_gaming_3_hvkfme.png", "Game Controller"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_gaming_4_cb1doe.png", "Game Controller") ] tenis_images = [ ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276495/Hobby/hobby_tennis_1_ei7yic.png", "Net"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_tennis_2_qx7tms.png", "Racket"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_tennis_3_pdsnou.png", "Shoe"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_tennis_4_v5yam2.png", "Ball") ] alone_images = [ ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276518/Social/social_alone_1_wy8rpb.png", "Alone"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276516/Social/social_alone_2_vy3tmr.png", "Alone"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276518/Social/social_alone_3_ygnsbz.png", "Alone"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276517/Social/social_alone_4_ppasf1.png", "Alone") ] together_images = [ ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276518/Social/social_together_1_eumalw.png", "Together"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276517/Social/social_together_2_ketyo1.png", "Together"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276517/Social/social_together_3_s4wzba.png", "Together"), ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276517/Social/social_together_4_ea2yka.png", "Together") ] for link in male_images: Image.create_image(link=link, description="Man", attribute='man standing', c_id=c_male.id) for link in female_images: Image.create_image(link=link, description='Girl', attribute='girl standing', c_id=c_female.id) create_images(programmer_images, c_programmer.id) create_images(writer_images, c_writer.id) create_images(gaming_images, c_gaming.id) create_images(tenis_images, c_tennis.id) create_images(alone_images, c_alone.id) create_images(together_images, c_together.id) # likert create_likert( "Ik ben sociaal. " "Als je sociaal bent maak je makkelijk vrienden en werk je graag samen" ) create_likert("Ik ben graag de beste") create_likert("Ik ben gek op computers") create_likert("Ik wil later programmeur worden") create_likert( "Programmeurs zijn sociaal. " "Als je sociaal bent maak je makkelijk vrienden en werk je graag samen" ) create_likert("Programmeurs houden ervan om de beste te zijn") create_likert( "Programmeurs zijn gek op computers en hebben weinig andere hobby’s") create_likert("Programmeur zijn, dat is een beroep voor mannen") create_likert("Programmeur zijn, dat is een beroep voor vrouwen") create_likert( "Schrijvers zijn sociaal. " "Als je sociaal bent maak je makkelijk vrienden en werk je graag samen" ) create_likert("Schrijvers houden ervan om de beste te zijn") create_likert( "Schrijvers zijn gek op computers en hebben weinig andere hobby’s") create_likert("Schrijver zijn, dat is een beroep voor mannen") create_likert("Schrijver zijn, dat is een beroep voor vrouwen") Question.create_question(q_type=QuestionType.open_question, text="Wat doet een programmeur?") video_female = Image.create_image(link="173d_-zTd1o", description='Role model intervention', attribute='Female') video_male = Image.create_image(link="hEMOMVZbSBE", description='Role model intervention', attribute='Male') # video_question Question.create_question(q_type=QuestionType.video, images=[video_female]) mc_1 = Question.create_question(q_type=QuestionType.mc_single_answer, text="Hoe oud ben je?", information=ParticipantInformationType.age) for i in range(6, 19): QuestionChoice.create_choice(choice_num=i - 5, q_id=mc_1.id, text=str(i)) QuestionChoice.create_choice(choice_num=14, q_id=mc_1.id, text="Anders") mc_2 = Question.create_question( q_type=QuestionType.mc_multiple_answer, text="Wat is jouw achtergrond? Er zijn meerdere antwoorden mogelijk.", information=ParticipantInformationType.ethnicity) for i, ethnicity in enumerate(Ethnicity.__iter__(), 1): QuestionChoice.create_choice(choice_num=i, q_id=mc_2.id, text=ethnicity.value) mc_3 = Question.create_question( q_type=QuestionType.mc_single_answer, text="Ik voel me een ...", information=ParticipantInformationType.gender) for i, gender in enumerate(Gender.__iter__(), 1): QuestionChoice.create_choice(choice_num=i, q_id=mc_3.id, text=gender.value) Question.create_question( q_type=QuestionType.notes, text="Researcher notes", information=ParticipantInformationType.researcher_notes) # video_question Question.create_question(q_type=QuestionType.video, images=[video_male])
def get_wiki(request): lat = request.GET.get('lat', '') lon = request.GET.get('lon', '') locu_url = 'https://sv.wikipedia.org/w/api.php?action=query&prop=images&list=geosearch&gsradius=1000&gscoord='+lat+'%7C'+lon+'&format=json' print(locu_url) resp = requests.get(locu_url) x = resp.json() geosearch = x["query"]["geosearch"] newgeosearch = [] for geo in geosearch: newGeo = GeoSearch() newGeo.pageId = geo["pageid"] newGeo.lat = geo["lat"] newGeo.lon = geo["lon"] newGeo.title = geo["title"] imageUrl = 'https://sv.wikipedia.org/w/api.php?action=query&prop=extracts|images&exintro=&explaintext=&format=json&pageids='+str(geo["pageid"]) respImage = requests.get(imageUrl) respoImageJson = respImage.json() newGeo.desc = respoImageJson["query"]["pages"][str(newGeo.pageId)]["extract"] images = respoImageJson["query"]["pages"][str(newGeo.pageId)]["images"] if len(images) > 0: newImage = Image() newImage.title = images[0]["title"] words = newImage.title.split(":") if len(words): filename = words[1] fileUrl = "https://en.wikipedia.org/w/api.php?action=query&titles=File:"+filename+"&prop=imageinfo&iiprop=url&format=json" fileResp = requests.get(fileUrl) fileJson = fileResp.json() # print(fileUrl) try: imageInfo = fileJson["query"]["pages"]["33285577"]["imageinfo"][0]["url"] # imageInfo = fileJson["query"]["pages"]["-1"]["imageinfo"]["url"] print("###################") print(fileJson) print("*******************") print(imageInfo) print("###################") print("\n") except: try: imageInfo = fileJson["query"]["pages"]["-1"]["imageinfo"][0]["url"] except: imageInfo = "" # print(fileUrl) # print(fileJson) # fileJson["query"]["pages"]["-1"]["imageinfo"]["url"] newGeo.imageurl = imageInfo newgeosearch.append(json.JSONDecoder().decode(json.dumps(newGeo, default=default))) return Response(newgeosearch, status=status.HTTP_200_OK)
def populate(): """Method that populates the databse with data""" db.session.close() db.drop_all() db.create_all() # User.create_user("admin", "admin") c_male = Category.create_category(name="Jongen", metacategory=Metacategory.gender) c_female = Category.create_category(name="Meisje", metacategory=Metacategory.gender) c_programmer = Category.create_category( name="Programmeur", metacategory=Metacategory.profession) c_writer = Category.create_category(name="Schrijver", metacategory=Metacategory.profession) c_alone = Category.create_category(name="Alleen", metacategory=Metacategory.social) c_together = Category.create_category(name="Samen", metacategory=Metacategory.social) c_gaming = Category.create_category(name="Videospelletjes spelen", metacategory=Metacategory.hobby) c_tennis = Category.create_category(name="Tennissen", metacategory=Metacategory.hobby) c_fruit = Category.create_category(name="Fruit", metacategory=Metacategory.demo) c_vegetable = Category.create_category(name="Groente", metacategory=Metacategory.demo) male_images = [ 'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/boy-1_xbqkzy.png', 'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/boy-2_smpd2z.png', 'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/boy-3_r4ytga.png', 'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/boy-4_nwlwjy.png' ] female_images = [ 'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/girl-1_kwkmrz.png', 'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/girl-2_rhniuk.png', 'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/girl-3_xe1a9u.png', 'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306180/gender/girl-4_xkvjjs.png' ] programmer_images = [ ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306549/profession/programmer-1_ulwehs.png", "Website"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/programmer-2_lof1xf.png", "App"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/programmer-4_pidzdt.png", "Call"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/programmer-3_eg4wkm.png", "Streaming") ] writer_images = [ ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/writer-1_eztpu9.png", "Newspaper"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/writer-2_rkpv82.png", "Papers"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/writer-3_irllf9.png", "Magazine"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306551/profession/writer-4_o7htgn.png", "Book") ] gaming_images = [ ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/game-1_n9io3s.png", "Game Controller"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/game-2_aquxcc.png", "Game Controller"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/game-3_spykmr.png", "Game Controller"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/game-4_pauwrg.png", "Game Controller") ] tennis_images = [ ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/tennis-1_smfocf.png", "Net"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/tennis-2_nfparh.png", "Racket"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/tennis-3_ezuh7s.png", "Shoe"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/tennis-4_wxlwze.png", "Ball") ] alone_images = [ ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/alone-1_hvi8pd.png", "Alone"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/alone-2_pitedg.png", "Alone"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/alone-3_ez8euu.png", "Alone"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/alone-4_adw4ji.png", "Alone") ] together_images = [ ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306655/social/together-1_y4i6i4.png", "Together"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306655/social/together-2_edkl5i.png", "Together"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/together-3_dwqijb.png", "Together"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/together-4_ai0lmg.png", "Together") ] fruit_images = [ ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596305962/demo/fruit-1_evzbef.png", "Fruit"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/fruit-2_xfiwal.png", "Fruit"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/fruit-3_cozz4g.png", "Fruit"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/fruit-4_sgdvu9.png", "Fruit") ] vegetable_images = [ ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/vegetable-1_u4jotx.png", "Vegetable"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/vegetable-2_lwst5m.png", "Vegetable"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/vegetable-3_h079fa.png", "Vegetable"), ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306046/demo/vegetable-4_xm9cyn.png", "Vegetable") ] for link in male_images: Image.create_image(link=link, description="Man", attribute='man standing', c_id=c_male.id) for link in female_images: Image.create_image(link=link, description='Girl', attribute='girl standing', c_id=c_female.id) create_images(programmer_images, c_programmer.id) create_images(writer_images, c_writer.id) create_images(gaming_images, c_gaming.id) create_images(tennis_images, c_tennis.id) create_images(alone_images, c_alone.id) create_images(together_images, c_together.id) create_images(fruit_images, c_fruit.id) create_images(vegetable_images, c_vegetable.id) # likert ## Demographics 1-5 create_likert( "Ik maak makkelijk vrienden en werk graag samen.", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/1_ywbmuk.m4a' ) create_likert( "Ik ben gek op computers", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/2_qty6fj.m4a' ) create_likert( "Ik vind het het leukst om", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/3_e3qsyz.m4a' ) create_likert( "Als ik dat zou willen, zou ik later programmeur kunnen worden.", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/4_yxejoq.m4a' ) create_likert( "Ik wil later programmeur worden", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/5_r7ghrl.m4a' ) ## 6-10 create_likert( "Wie maakt het makkelijkst vrienden en werkt het liefst samen?", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/6_tbouud.m4a' ) create_likert( "Wie speelt er het liefste videospelletjes?", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/7_wiwrjx.m4a' ) create_likert( "Wie speelt er het liefste tennis?", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/8_l9xs3q.m4a' ) create_likert( "Welk beroep vind jij iets voor meisjes?", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/9_zqwjng.m4a' ) create_likert( "Welk beroep vind jij iets voor jongens?", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/10_qjljyp.m4a' ) ## 11-14 create_likert( "Programmeurs maken makkelijk vrienden en werken graag samen.", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/11_g0dvmj.m4a' ) create_likert( "Programmeurs zijn gek op computers en hebben weinig andere hobby’s.", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/12_nvbyjz.m4a' ) create_likert( "Programmeur zijn, dat is een beroep voor", 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/13_x4cjuw.m4a' ) create_likert("Vraag 14", '') #15 Question.create_question( q_type=QuestionType.open_question, text="Wat doet een programmeur?", audio= 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200543/audio/15_kgj5ql.m4a' ) video_female = Image.create_image(link="B3600xjaz3Y", description='Role model intervention', attribute='Female') video_male = Image.create_image(link="SwISXzPoNUQ", description='Role model intervention', attribute='Male') # video_question 16 Question.create_question(q_type=QuestionType.video, images=[video_female]) # demographics ## 17 18 19 mc_1 = Question.create_question( q_type=QuestionType.mc_single_answer, text="Hoe oud ben je?", information=ParticipantInformationType.age, audio= 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/17_fcwq8f.m4a' ) for i in range(7, 19): QuestionChoice.create_choice(choice_num=i - 6, q_id=mc_1.id, text=str(i)) QuestionChoice.create_choice(choice_num=13, q_id=mc_1.id, text="Anders") mc_2 = Question.create_question( q_type=QuestionType.mc_multiple_answer, text= "Waar zijn jouw ouders/verzorgers geboren? Er zijn meerdere antwoorden mogelijk.", information=ParticipantInformationType.ethnicity, audio= 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200543/audio/18_etdcmb.m4a' ) for i, ethnicity in enumerate(Ethnicity.__iter__(), 1): QuestionChoice.create_choice(choice_num=i, q_id=mc_2.id, text=ethnicity.value) mc_3 = Question.create_question( q_type=QuestionType.mc_single_answer, text="Ik voel me een ...", information=ParticipantInformationType.gender, audio= 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/19_iiqikw.m4a' ) for i, gender in enumerate(Gender.__iter__(), 1): QuestionChoice.create_choice(choice_num=i, q_id=mc_3.id, text=gender.value) # 20 Question.create_question( q_type=QuestionType.notes, text="Researcher notes", information=ParticipantInformationType.researcher_notes) # video_question 21 Question.create_question(q_type=QuestionType.video, images=[video_male]) # experience ## 22 23 mc_4 = Question.create_question( q_type=QuestionType.mc_multiple_answer, text= "Heb je wel eens geprogrammeerd? Er zijn meerdere antwoorden mogelijk", information=ParticipantInformationType.experience, audio= 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200543/audio/22_jlrycd.m4a' ) for i, experience in enumerate(Experience.__iter__(), 1): QuestionChoice.create_choice(choice_num=i, q_id=mc_4.id, text=experience.value) mc_5 = Question.create_question( q_type=QuestionType.mc_multiple_answer, text="Ken jij een programmeur? Er zijn meerdere antwoorden mogelijk", information=ParticipantInformationType.familiar, audio= 'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200543/audio/23_iicnjg.m4a' ) for i, familiar in enumerate(Familiar.__iter__(), 1): QuestionChoice.create_choice(choice_num=i, q_id=mc_5.id, text=familiar.value)
def create(self, valideted_data): img = Image() img.image = valideted_data['image'] img.save() return img
def setUp(self): self.view = ImageViewSet.as_view() self.factory = APIRequestFactory() self.correct_data = {'uri': '/some/path/to/image.png'} self.error_data = {'random': 'random^2'} image = Image(uri='/some/path/to/Image1.png') image.save() image = Image(uri='/some/path/to/Image2.png') image.save() image = Image(uri='/some/path/to/Image3.png') image.save()
def test_default_values(self): image = Image() self.assertEqual(image.file, '')
def new_task(): post_json = request.get_json() # Kunde anlegen oder über ID selektieren customer = None cus_id = None if hasattr(post_json, "cusID"): cus_id = post_json["cusID"] else: customer = Customer( cus_title = post_json["gender"], cus_first_name = post_json["firstName"], cus_last_name = post_json["lastName"], cus_email = post_json["email"], cus_phone_no = post_json["prefixNumber"] + " " + post_json["phone"], cus_street = post_json["street"], cus_house_number = post_json["houseNumber"], cus_post_code = post_json["postCode"] ) db.session.add(customer) # pylint: disable=maybe-no-member db.session.commit() # pylint: disable=maybe-no-member cus_id = customer.cus_id # Gerät anlegen oder über ID selektieren device = None dev_id = None if hasattr(post_json, "devID"): dev_id = post_json["devID"] else: device = Device( dev_name = post_json["devName"], dev_model = post_json["devModel"], dev_category = post_json["categoryName"], dev_electronic_mechanical_type = post_json["electricalMechanical"], dev_mnf_name = post_json["manufacturerName"], ) db.session.add(device) # pylint: disable=maybe-no-member db.session.commit() # pylint: disable=maybe-no-member dev_id = device.dev_id new_task = Task( tsk_fault_description = post_json["faultDescription"], tsk_creation_date = datetime.now(), tsk_cus_id = cus_id, tsk_dev_id = dev_id, tsk_state = "new", tsk_next_step = "not_set", ) db.session.add(new_task) # pylint: disable=maybe-no-member db.session.commit() # pylint: disable=maybe-no-member tk = generate_token("customer", new_task.tsk_id) # QR-Code generieren image_file = generate_qrcode_label("customer", new_task.tsk_id, tk) # Files anlegen files = post_json["files"] for filename in files: new_file = Image(img_filename=filename, img_tsk_id=new_task.tsk_id) db.session.add(new_file) # pylint: disable=maybe-no-member db.session.commit() # pylint: disable=maybe-no-member # Token als neuer Token in der Session speichern. session['NEW_TOKEN'] = tk return {'tsk_id':new_task.tsk_id, 'tsk_token': tk}