def test_descriptions_are_added(self):
        self.ind.description = {'fi': 'testi', 'en': 'test'}
        self.ind.descriptionURL = {'sv': 'testurl'}

        self.ind.update()
        laji_ind = individual.get(self.ind.id)

        self.assertEquals('testi', laji_ind.description.get('fi'))
        self.assertEquals('test', laji_ind.description.get('en'))
        self.assertEquals('testurl', laji_ind.descriptionURL.get('sv'))
def _update_individual(request):
    if not _post_is_valid(request):
        return _return_with_context(request)

    individuale = individual.get(request.POST.get('id'))
    individuale.taxon = request.POST.get('taxon')
    individuale.ringID = request.POST.get('ring_id')
    individuale.nickname = request.POST.get('nickname')
    descriptionFields = _getDescriptionFields(request)
    individuale.description = descriptionFields[0]
    individuale.descriptionURL = descriptionFields[1]
    individuale.update()
    messages.add_message(request, messages.INFO, _('Tiedot tallennettu onnistuneesti!'))
def getPublicGatheringsForIndividual(request):
    """
    REST-controller for getting bird-specific gatherings.
    """

    ids = request.GET.get('individualId').split(",")
    data = {}
    for id in ids:
        indiv = individual.get(id)
        gatherings = _get_gatherings_data(id, public_only=True, extras_onlymapdata=True)
        gatherings.append(indiv.nickname)
        data[id] = gatherings
    return Response(data)
def _get_gatherings_data(individual_id, public_only=True, extras_originatingDevice=False, extras_onlymapdata=False):
    indiv = individual.get(individual_id)
    gatherings_obj = indiv.get_public_gatherings() if public_only else indiv.get_all_gatherings(extras_originatingDevice=extras_originatingDevice)
    gatherings_json = []

    for go in gatherings_obj:
        gj = go.to_lajistore_json()

        _move_altitude(gj)

        if public_only:
            _remove_publicity(gj)

        if extras_onlymapdata:
            gj['x'] = gj['wgs84Geometry']['coordinates'][1]
            gj['y'] = gj['wgs84Geometry']['coordinates'][0]
            del gj['wgs84Geometry']

            gj['d'] = gj['dateBegin']
            del gj['dateBegin']

            gj['t'] = gj['temperature']
            del gj['temperature']

            if 'altitude' in gj:
                gj['a'] = gj['altitude']
                del gj['altitude']

            del gj['higherGeography']
            del gj['country']

        if extras_originatingDevice:
            if not 'extras' in gj:
                gj['extras'] = {}
            gj['extras']['originatingDevice'] = go.extras['originatingDevice']

        gatherings_json.append(gj)

    return gatherings_json
def _delete_individual(request):
    individuale = individual.get(request.POST.get('id'))
    individuale.deleted = True
    individuale.update()
    messages.add_message(request, messages.INFO, _('Lintu poistettu onnistuneesti!'))
 def test_get(self):
     self.assertEquals(self.ind.id, individual.get(self.ind.id).id)
def set_individual_gatherings(request):
    gatherings = json.loads(compressedBase64ToString(request.POST['points']))
    indiv_id = request.GET['individual_id']
    indiv = individual.get(indiv_id)
    indiv.set_gatherings(gatherings)
    return Response({'success': True})