Skip to content

Commit

Permalink
Merge pull request roundware#398 from hburgund/hrb-misc
Browse files Browse the repository at this point in the history
Various updates/fixes including updates to user model in API
  • Loading branch information
hburgund committed May 6, 2020
2 parents e37decb + beb73d1 commit 445bedb
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 8 deletions.
Binary file added files/rw_test_audio1.mp3
Binary file not shown.
1 change: 1 addition & 0 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ mkdir -p $STATIC_PATH

# copy test audio file to media storage
cp $SOURCE_PATH/files/rw_test_audio1.wav $MEDIA_PATH
cp $SOURCE_PATH/files/rw_test_audio1.mp3 $MEDIA_PATH

# Copy default production settings file
mkdir -p $WWW_PATH/settings
Expand Down
2 changes: 1 addition & 1 deletion roundware/api2/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class AssetFilterSet(django_filters.FilterSet):
tag_ids = IntegerListAndFilter(name='tags__id') # performs AND filtering
media_type = django_filters.CharFilter(name='mediatype')
language = django_filters.CharFilter(name='language__language_code')
envelope_id = django_filters.NumberFilter()
envelope_id = IntegerListAndFilter(name='envelope__id')
longitude = django_filters.NumberFilter(lookup_type='startswith')
latitude = django_filters.NumberFilter(lookup_type='startswith')
submitted = django_filters.TypedChoiceFilter(choices=BOOLEAN_CHOICES, coerce=strtobool)
Expand Down
18 changes: 18 additions & 0 deletions roundware/api2/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -1880,9 +1880,16 @@ def destroy(self, request, pk=None):
class UserViewSet(viewsets.ViewSet):
"""
API V2: api/2/users/
API V2: api/2/users/:id/
"""
queryset = User.objects.all()

def get_object(self, pk):
try:
return User.objects.get(pk=pk)
except User.DoesNotExist:
raise Http404("User not found")

def create(self, request):
"""
POST api/2/user/ - Creates new User based on either device_id or username/pass. Returns token.
Expand Down Expand Up @@ -1915,6 +1922,17 @@ def create(self, request):
"client_type" : user.userprofile.client_type
})

def partial_update(self, request, pk):
"""
PATCH api/2/users/:id/ - Update existing User
"""
user = self.get_object(pk)
serializer = serializers.UserInfoSerializer(user, data=request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


class VoteViewSet(viewsets.ViewSet):
"""
Expand Down
12 changes: 11 additions & 1 deletion roundware/lib/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -690,12 +690,22 @@ def save_asset_from_request(request, session, asset=None):
weight = get_parameter_from_request(request, 'weight')
if weight is None:
weight = 50

# If user_id contained in request, use it, otherwise, use session_id to determine user_id
User = get_user_model()
user_id = get_parameter_from_request(request, 'user_id')
try:
user = User.objects.get(pk=user_id)
except:
user = None
# determine User from provided session_id
session_id = get_parameter_from_request(request, 'session_id')
device_id = models.Session.objects.get(id=session_id).device_id
try:
user = User.objects.get(userprofile__device_id=device_id)
except:
# handle api/1 which will not have User
user = None
pass

asset = models.Asset(latitude=latitude,
longitude=longitude,
Expand Down
2 changes: 1 addition & 1 deletion roundware/notifications/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def notify(self, ref=None):
# added.
to=[user.email for user in self.who.all() if UserObjectPermission.objects.filter(user=user,
permission__codename="access_project",
object_pk=self.notification.project.pk) or user.is_superuser],
object_pk=self.notification.project.pk) or user.is_staff],
)
self.last_sent_time = datetime.datetime.now()
self.last_sent_reference = ref
Expand Down
11 changes: 6 additions & 5 deletions roundware/rw/fixtures/sample_project.json
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@
"listen_questions_dynamic": false,
"speak_questions_dynamic": false,
"sharing_url": "http://roundware.org/r/eid=[id]",
"out_of_range_url": "http://roundware.dyndns.org:8000/mg_outofrange.mp3",
"out_of_range_url": "http://prod.roundware.com:8000/mg_outofrange.mp3",
"recording_radius": 2000,
"listen_enabled": true,
"geo_listen_enabled": true,
Expand All @@ -283,7 +283,7 @@
"audio_stream_bitrate": "128",
"ordering": "random",
"demo_stream_enabled": false,
"demo_stream_url": "http://roundware.dyndns.org:8000/scapes1.mp3",
"demo_stream_url": "http://prod.roundware.com:8000/scapes1.mp3",
"out_of_range_distance": 10000.0,
"languages": [
1
Expand Down Expand Up @@ -1193,11 +1193,12 @@
"latitude": 1.0,
"longitude": 1.0,
"filename": "rw_test_audio1.wav",
"file": "rw_test_audio1.wav",
"file": "rw_test_audio1.mp3",
"volume": 1.0,
"submitted": true,
"project": 1,
"created": "2012-07-24T18:06:40",
"updated": "2012-07-24T18:06:40",
"audiolength": 30000000000,
"start_time": 0,
"end_time": 30.70847,
Expand Down Expand Up @@ -1236,8 +1237,8 @@
"code": "1",
"maxvolume": 0.5,
"minvolume": 0.0,
"uri": "http://roundware.dyndns.org:8000/scapes1.mp3",
"backupuri": "http://roundware.dyndns.org:8000/scapes1.mp3",
"uri": "http://prod.roundware.com:8000/scapes1.mp3",
"backupuri": "http://prod.roundware.com:8000/scapes1.mp3",
"shape": "SRID=4326;MULTIPOLYGON (((1.0711669921875000 1.3841426927920160, 1.0052490234375000 1.4829886856602810, 0.9173583984375000 1.5269188384985191, 0.7745361328125000 1.4939713066293241, 0.7305908203125000 1.4170918294416390, 0.6976318359375000 1.5159363834516859, 0.6207275390625000 1.5269188384985191, 0.6097412109375000 0.8019757647536730, 0.6138610839843750 0.5479347630518130, 0.4092407226562500 0.5987439850125230, 0.2279663085937500 0.7140928403610860, 0.1071166992187500 0.9118267425981090, 0.0741577148437500 1.1177879741676240, 0.0686645507812500 1.2880384688779301, 0.1181030273437500 1.4857343460277450, 0.2416992187500000 1.6724309149453820, 0.4339599609375000 1.8069513703020781, 0.7470703125000000 1.8838157762628480, 1.0382080078125000 1.8453839885731871, 1.3018798828125000 1.6587038068676121, 1.4282226562500000 1.4061088354351590, 1.4392089843750000 1.0985654960406519, 1.3677978515625000 0.8514090937773030, 1.1920166015625000 0.6481795331595090, 0.9667968750000000 0.5602938041720860, 0.7580566406250000 0.5438150769842830, 0.6234741210937500 0.5458749203708350, 0.6179809570312500 0.8040354989710560, 0.7525634765625000 0.8019757647536730, 0.7635498046875000 1.2633253574893240, 0.8404541015625000 1.3731595449619911, 0.9503173828125000 1.3896342476555250, 1.0134887695312500 1.3045137436059020, 1.0711669921875000 1.3841426927920160)))",
"boundary": "SRID=4326;MULTILINESTRING ((1.0711669921875000 1.3841426927920160, 1.0052490234375000 1.4829886856602810, 0.9173583984375000 1.5269188384985191, 0.7745361328125000 1.4939713066293241, 0.7305908203125000 1.4170918294416390, 0.6976318359375000 1.5159363834516859, 0.6207275390625000 1.5269188384985191, 0.6097412109375000 0.8019757647536730, 0.6138610839843750 0.5479347630518130, 0.4092407226562500 0.5987439850125230, 0.2279663085937500 0.7140928403610860, 0.1071166992187500 0.9118267425981090, 0.0741577148437500 1.1177879741676240, 0.0686645507812500 1.2880384688779301, 0.1181030273437500 1.4857343460277450, 0.2416992187500000 1.6724309149453820, 0.4339599609375000 1.8069513703020781, 0.7470703125000000 1.8838157762628480, 1.0382080078125000 1.8453839885731871, 1.3018798828125000 1.6587038068676121, 1.4282226562500000 1.4061088354351590, 1.4392089843750000 1.0985654960406519, 1.3677978515625000 0.8514090937773030, 1.1920166015625000 0.6481795331595090, 0.9667968750000000 0.5602938041720860, 0.7580566406250000 0.5438150769842830, 0.6234741210937500 0.5458749203708350, 0.6179809570312500 0.8040354989710560, 0.7525634765625000 0.8019757647536730, 0.7635498046875000 1.2633253574893240, 0.8404541015625000 1.3731595449619911, 0.9503173828125000 1.3896342476555250, 1.0134887695312500 1.3045137436059020, 1.0711669921875000 1.3841426927920160))",
"attenuation_distance": 10000,
Expand Down

0 comments on commit 445bedb

Please sign in to comment.