示例#1
0
from rest_framework import serializers
from project.mixins import PrefetchMixin, QueryFieldsMixin
from project.utils import import_current_version_module, local_versioned_url_name
from search.pipeline import RequestPipeline
from ....models import Alarm

PointSerializer = import_current_version_module('trips',
                                                'serializers').PointSerializer


class AlarmCreateSerializer(serializers.HyperlinkedModelSerializer):
    """
    Base Serializer for the creation of alarms
    """

    origin = serializers.CharField(label='Endereço de origem do alarme',
                                   required=True)
    destination = serializers.CharField(label='Endereço de destino do alarme',
                                        required=True)

    def create(self, validated_data):
        user = self.context['request'].user
        validated_data['user'] = user
        return super().create(validated_data)

    def validate(self, data):
        data = super().validate(data)

        if data.get('origin'):
            pipe_origin = RequestPipeline(query_type='origin',
                                          request=self.context['request'])
示例#2
0
from django.contrib.auth.models import User
from django.contrib.gis.db import models
from django.contrib.postgres.fields import JSONField
from django.db.models import Sum
from django.db.models.functions import Coalesce
from django.core import validators
from oauth2_provider.settings import oauth2_settings
from project.utils import import_current_version_module
from alarms.tasks import dispatch_alarms
from .exceptions import PassengerBookedError, TripFullError, PassengerNotBookedError, UserNotDriverError, PassengerApprovedError, PassengerDeniedError, PassengerPendingError, NotEnoughSeatsError
from .utils import user_is_driver
from .tasks import publish_new_trip_on_fb
# Create your models here.


trips_webhooks = import_current_version_module('trips', 'webhooks')


class Trip(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    user = models.ForeignKey(
        User,
        related_name='trips_offered',
        on_delete=models.SET_NULL,  # Null users are users that deleted their accounts
        null=True
    )
    origin = models.CharField(
        "Enderço de origem da carona",
        max_length=500
    )
    origin_point = models.PointField("Coordenadas de origem da carona")
示例#3
0
from django.contrib.gis.db import models
from django.contrib.gis.db.models.functions import Distance
from django.core import validators
from django.contrib.auth.models import User
from django.db.models import Q, F
from django.utils import timezone
from project.utils import import_current_version_module
# Create your models here.

alarm_webhooks = import_current_version_module('alarms', 'webhooks')


class Alarm(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    user = models.ForeignKey(User,
                             related_name='alarms',
                             on_delete=models.CASCADE)
    origin = models.CharField("Enderço de origem da carona", max_length=500)
    origin_point = models.PointField("Coordenadas de origem da carona")
    origin_radius = models.FloatField(
        "Raio de pesquisa da origem em km",
        default=5,
        validators=[
            validators.MaxValueValidator(10),
            validators.MinValueValidator(0.05)
        ],
    )
    destination = models.CharField("Enderço de destino da carona",
                                   max_length=500)
    destination_point = models.PointField("Coordenadas de destino da carona")
    destination_radius = models.FloatField(