Пример #1
0
 def test_current_user_field(self):
     user = User.objects.get(username="******")
     CuserMiddleware.set_user(user)
     TestModel.objects.create(name="TEST")
     CuserMiddleware.del_user()
     test_instance = TestModel.objects.get(name="TEST")
     self.assertEqual(test_instance.creator, user)
Пример #2
0
    def get_queryset(self, *args, **kwargs):
        self.app = app_from_object(self)
        self.model = class_from_string(self, self.kwargs['model'])

        # Communicate the request user to the models (Django doesn't make this easy, need cuser middleware)
        CuserMiddleware.set_user(self.request.user)

        # If the URL has GET parameters (following a ?) then self.request.GET
        # will contain a dictionary of name: value pairs that FilterSet uses
        # construct a new filtered queryset.
        self.filterset = None
        self.format = get_list_display_format(self.request.GET)
        self.ordering = get_ordering(self)

        self.queryset = self.model.objects.all()
        if len(self.request.GET) > 0 or len(
                self.request.session.get("filter", {})) > 0:
            fs = get_filterset(self)

            # If there is a filter specified in the URL
            if not fs is None:
                self.filterset = fs
                self.queryset = fs.filter()

        if (self.ordering):
            self.queryset = self.queryset.order_by(*self.ordering)

        self.count = len(self.queryset)

        return self.queryset
Пример #3
0
 def test_current_user_field(self):
     user = User.objects.get(username="******")
     CuserMiddleware.set_user(user)
     TestModel.objects.create(name="TEST")
     CuserMiddleware.del_user()
     test_instance = TestModel.objects.get(name="TEST")
     self.assertEqual(test_instance.creator, user)
Пример #4
0
 def setUpTestData(cls):
     cls.user = User.objects.create_user(
         username="******", email="", password="******"
     )
     cls.user_repr = repr(cls.user)
     CuserMiddleware.set_user(cls.user)
     cls.pet = Pet.objects.create(name="Catz", age=12)
     cls.human = Human.objects.create(name="George", age=42, height=175)
     cls.human_repr = repr(cls.human)
Пример #5
0
 def setUpTestData(cls):
     cls.user = User.objects.create_user(
         username="******", email="", password="******"
     )
     cls.user_repr = repr(cls.user)
     CuserMiddleware.set_user(cls.user)
     cls.pet = Pet.objects.create(name="Catz", age=12)
     cls.human = Human.objects.create(name="George", age=42, height=175)
     cls.human_repr = repr(cls.human)
Пример #6
0
 def setUp(self):
     self.user = User.objects.create_user(
         username="******", email="", password="******"
     )
     self.user_repr = repr(self.user)
     CuserMiddleware.set_user(self.user)
     self.pet = Pet.objects.create(name="Catz", age=12)
     self.pet2 = Pet.objects.create(name="Catzou", age=1)
     self.human = Human.objects.create(name="George", age=42, height=175)
     self.human.pets.add(self.pet)
     self.human_repr = repr(self.human)
Пример #7
0
 def setUp(self):
     self.user = User.objects.create_user(
         username="******", email="", password="******"
     )
     self.user_repr = repr(self.user)
     CuserMiddleware.set_user(self.user)
     self.pet = Pet.objects.create(name="Catz", age=12)
     self.pet2 = Pet.objects.create(name="Catzou", age=1)
     self.human = Human.objects.create(name="George", age=42, height=175)
     self.human.pets.add(self.pet)
     self.human_repr = repr(self.human)
Пример #8
0
    def get_queryset(self, *args, **kwargs):
        if settings.DEBUG:
            log.debug(
                f"Getting Queryset for List View. Process ID: {os.getpid()}.")
            if len(self.request.GET) > 0:
                log.debug(f"GET parameters:")
                for key, val in self.request.GET.items():
                    log.debug(f"\t{key}={val}")
            else:
                log.debug(f"No GET parameters!")

        self.app = app_from_object(self)
        self.model = class_from_string(self, self.kwargs['model'])

        # Communicate the request user to the models (Django doesn't make this easy, need cuser middleware)
        CuserMiddleware.set_user(self.request.user)

        self.format = get_list_display_format(self.request.GET)

        self.ordering = get_ordering(self)

        self.filterset = None  # Default

        fs = None
        if len(self.request.GET) > 0 or len(
                self.request.session.get("filter", {})) > 0:
            # If the URL has GET parameters (following a ?) then self.request.GET
            # will contain a dictionary of name: value pairs that FilterSet uses
            # construct a new filtered queryset.
            fs = get_filterset(self)

        # If there is a filter specified in the URL
        if fs:
            self.filterset = fs
            self.queryset = fs.filter()
        else:
            self.queryset = self.model.objects.all()

        if (self.ordering):
            self.queryset = self.queryset.order_by(*self.ordering)

        if settings.DEBUG:
            log.debug(f"ordering  = {self.ordering}")
            log.debug(
                f"filterset = {self.filterset.get_specs() if self.filterset else None}"
            )

        self.count = len(self.queryset)

        return self.queryset
Пример #9
0
 def bodega_actual():
     user = CuserMiddleware.get_user()
     cuenta = Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
         return cuenta.bodega
     # end if
     return None
Пример #10
0
 def pre_save(self, model_instance, add):
     if add or not self.add_only:
         user = CuserMiddleware.get_user()
         if user:
             setattr(model_instance, self.attname, user.pk)
             return user.pk
     return super(CurrentUserField, self).pre_save(model_instance, add)
Пример #11
0
 def published(self):
     user = CuserMiddleware.get_user()
     if user.is_superuser:
         books = self
     else:
         books = self.filter(published=True)
     return books
Пример #12
0
 def clean(self):
     super(CitaMedicaFormSupra, self).clean()
     if not hasattr(self, 'instance'):
         user = CuserMiddleware.get_user()
         paciente = usuarios.Paciente.objects.filter(id=user.id).first()
         if not paciente:
             form.ValidationError("Necesita ser un paciente para crear una cita")
Пример #13
0
 def get_queryset(self):
     qs = super(AnswerListView, self).get_queryset()
     user = CuserMiddleware.get_user()
     slug = self.kwargs.get('slug', None)
     survey = get_object_or_404(Survey.objects.published(), slug=slug)
     qs = qs.user_survey(user=user, survey=survey)
     return qs
Пример #14
0
    def __init__(self, *args, **kwargs):
        super(NoSerialForm, self).__init__(*args, **kwargs)
        user = CuserMiddleware.get_user()
        cuenta = inv.Cuenta.objects.filter(pk=user.pk).first()
        if cuenta and self.fields.has_key('noserial'):
            self.fields['noserial'].queryset = inv.ActivoNoSerial.objects.filter(bodega=cuenta.bodega)

        # end if

        def clean(self):
            data = self.cleaned_data
            noserial = geo.GeoNoSerial.objects.filter(geoactivo=data['geoactivo'], noserial=data['noserial']).first()
            if noserial:
                raise forms.ValidationError("Ya tiene asignado/a una %s" % (data['noserial'].nombre))
            else:
                return data
            # end if

        # end def

        def clean_cantidad(self):
            if self.cleaned_data['cantidad']:
                cantidad = self.cleaned_data['cantidad']
                noserial = self.cleaned_data['noserial']
                if noserial:
                    if noserial.cantidad - cantidad < 0:
                        raise forms.ValidationError("La cantidad maxima disponible es %d" % (cantidad))
                    # end if
                    return cantidad
                # end if
                return forms.ValidationError("Seleccione un activo no serial")
            # end if
            return forms.ValidationError("Este campo es requerido")
Пример #15
0
 def update(self, instance, validated_data):
     if not instance:
         return self.create(validated_data)
     #end if
     user = CuserMiddleware.get_user()
     service = venta.Service.objects.filter(userservice__user = user).first()
     
     order = instance
     if 'bill' in validated_data:
         order.bill = validated_data['bill']
     #end if
     if 'client' in validated_data:
         order.client  = validated_data['client']
     #end if
     if 'canceled' in validated_data:
         order.canceled  = validated_data['canceled']
     #end if
     order.service = service
     order.save()
     if 'products' in validated_data:
         order.products.all().delete()
         for item in validated_data['products']:
             itemorder = venta.ItemOrder.objects.create(product=item['product'], count=item['count'])
             order.products.add(itemorder)
         #end for
     #end if
     return order
Пример #16
0
    def get_object(self, *args, **kwargs):
        self.app = app_from_object(self)
        self.model = class_from_string(self, self.kwargs['model'])

        # Communicate the request user to the models (Django doesn't make this easy, need cuser middleware)
        CuserMiddleware.set_user(self.request.user)

        self.pk = self.kwargs['pk']
        self.obj = get_object_or_404(self.model, pk=self.kwargs['pk'])
        self.format = get_object_display_format(self.request.GET)
        self.success_url = reverse_lazy('list',
                                        kwargs={'model': self.kwargs['model']})

        collect_rich_object_fields(self)

        return self.obj
Пример #17
0
 def get_avatar_queryset(self):
     """ Fetch special avatars if the user is an admin."""
     user = CuserMiddleware.get_user()
     avatar_queryset = DiventiAvatar.objects.all().order_by('-staff_only')
     if not user or not user.is_staff:
         avatar_queryset = avatar_queryset.filter(staff_only=False)
     return avatar_queryset
Пример #18
0
 def delete(self, request, *args, **kwargs):
     self.object = self.get_object()
     self.object.eliminado = True
     user = CuserMiddleware.get_user()
     self.object.eliminado_por = user
     self.object.save()
     return HttpResponse(status=200)
Пример #19
0
 def in_collection(self):
     user = CuserMiddleware.get_user()
     if user.is_authenticated():
         item_set = self.collectionitem_set.filter(collection__user=user)
         return item_set.count() > 0
     else:
         return False
Пример #20
0
def unread_dialogs():
	user = CuserMiddleware.get_user()
	if user.is_authenticated():
		d_count = get_unread_messages_count(user.id)
		if d_count > 0:
			return "+{}".format(d_count)
	return ""
Пример #21
0
 def user_has_promoted(self):
     # Fetch the logged user thanks to a dedicated middleware
     user = CuserMiddleware.get_user()
     if user in self.promotions.all():
         return True
     else:
         return False
Пример #22
0
	def get_fields(self, request, obj):
		fields = super(BillAdmin, self).get_fields(request, obj)
		user = CuserMiddleware.get_user()
		service = Service.objects.filter(userservice__user = user).first()
		if service:
			fields.remove('service')
		return fields
Пример #23
0
    def increase_activity(self, date, issue=None, decrease=False):
        actor = CuserMiddleware.get_user()
        # handle user activity, if there is a current user
        if actor and not isinstance(actor, AnonymousUser):
            user_activity = json.loads(actor.activity)
            iss = 'None'
            if issue:
                iss = issue.get_ticket_identifier()
            if decrease:
                if self.name_short in user_activity:
                    user_activity[self.name_short].pop()
            else:
                if self.name_short in user_activity:
                    user_activity[self.name_short].append((date.isoformat(), iss))
                else:
                    user_activity[self.name_short] = []
                    user_activity[self.name_short].append((date.isoformat(), iss))
            actor.activity = json.dumps(user_activity)
            actor.save()
            # delete cache
            cache.delete('action_data_'+actor.username)
            cache.delete('action_data_'+actor.username+'_'+self.name_short)

        # handle project activity
        activity_dict = json.loads(self.activity)
        if isinstance(activity_dict, dict):
            activity_dict = []
        if decrease:
            activity_dict.pop()
        else:
            activity_dict.append(date.isoformat())
        self.activity = json.dumps(activity_dict)
        self.save()
        return
Пример #24
0
 def user_collection(self, user):
     current_user = CuserMiddleware.get_user() # The user that is operating in the session
     products = self.filter(customers=user)
     if current_user != user: # Hide non-published products if the user is not visiting his own profile
         products = products.published()
     products = products.prefetch()
     return products
Пример #25
0
	def save_model(self, request, obj, form, change):
		user = CuserMiddleware.get_user()
		service = Service.objects.filter(userservice__user = user).first()
		if service:
			obj.service = service
		#end if
		super(ClientAdmin, self).save_model(request, obj, form, change)
Пример #26
0
 def is_owned(self):
     user = CuserMiddleware.get_user()
     if user is None:
         return False
     if user.is_staff:
         return True
     return self.owners.filter(id=user.pk).exists()
Пример #27
0
 def get_queryset(self, request):
     queryset = super(DepartamentoAdmin, self).get_queryset(request)
     user = CuserMiddleware.get_user()
     if not request.user.is_superuser:
         queryset = queryset.filter(empresa__empresa=user)
     # end if
     return queryset
Пример #28
0
 def bodega_actual():
     user = CuserMiddleware.get_user()
     cuenta = Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
         return cuenta.bodega
     # end if
     return None
Пример #29
0
    def update_admin_fields(self):
        '''
        Update the CoGs admin fields on an object (whenever it is saved).
        '''
        now = timezone.now()
        usr = CuserMiddleware.get_user()

        if hasattr(self, "last_edited_by"):
            self.last_edited_by = usr

        if hasattr(self, "last_edited_on"):
            self.last_edited_on = now

        if hasattr(self, "last_edited_on_tz"):
            self.last_edited_on_tz = str(get_current_timezone())

        # We infer that if the object has pk it was being edited and if it has none it was being created
        if self.pk is None:
            if hasattr(self, "created_by"):
                self.created_by = usr

            if hasattr(self, "created_on"):
                self.created_on = now

            if hasattr(self, "created_on_tz"):
                self.created_on_tz = str(get_current_timezone())
Пример #30
0
 def published(self):
     user = CuserMiddleware.get_user()
     if user.is_superuser:
         chapters = self
     else:
         chapters = self.filter(chapter_book__published=True)
     chapters = chapters.book()
     return chapters
Пример #31
0
 def delete(self, *args, **kwargs):
     TrackingEvent.objects.create(
         operation=TrackingEvent.DELETE,
         user=CuserMiddleware.get_user(),
         date=now(),
         obj=self,
     )
     super().delete(*args, **kwargs)
Пример #32
0
 def save(self, *args, **kwargs):
     user = CuserMiddleware.get_user()
     cuenta = Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
         self.creado_por = cuenta
         self.salida = cuenta.bodega
         super(SalidaInsumo, self).save(*args, **kwargs)
         self.activos.update(bodega=None)
Пример #33
0
 def save(self, *args, **kwargs):
     user = CuserMiddleware.get_user()
     cuenta = Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
         self.destino = cuenta.bodega
         acta = super(EntradaInsumo, self).save(*args, **kwargs)
         self.activos.update(bodega=self.destino)
         return acta
Пример #34
0
 def save(self, *args, **kwargs):
     user = CuserMiddleware.get_user()
     cuenta = Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
         self.destino = cuenta.bodega
         acta = super(EntradaInsumo, self).save(*args, **kwargs)
         self.activos.update(bodega=self.destino)
         return acta
Пример #35
0
 def __init__(self, *args, **kwargs):
     super(ReviewForm, self).__init__(*args, **kwargs)
     user = CuserMiddleware.get_user()
     if not user.is_anonymous():
         try:
             self.fields['name'].initial = UserProfile.objects.get(user=user).get_full_name()
         except UserProfile.DoesNotExist:
             pass
Пример #36
0
 def save(self, *args, **kwargs):
     if self.pk is None:
         super().save(*args, **kwargs)
         self.owners.add(CuserMiddleware.get_user())
     elif self.is_owned():
         super().save(*args, **kwargs)
     else:
         raise PermissionDenied()
Пример #37
0
 def save(self, *args, **kwargs):
     user = CuserMiddleware.get_user()
     cuenta = Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
         self.creado_por = cuenta
         self.salida = cuenta.bodega
         super(SalidaInsumo, self).save(*args, **kwargs)
         self.activos.update(bodega=None)
Пример #38
0
    def get_object(self, *args, **kwargs):
        self.model = class_from_string(self, self.kwargs['model'])
        self.pk = self.kwargs['pk']

        # Communicate the request user to the models (Django doesn't make this easy, need cuser middleware)
        CuserMiddleware.set_user(self.request.user)

        # Get the ordering
        self.ordering = get_ordering(self)

        # Get Neighbour info for the object browser
        self.filterset = get_filterset(self)

        neighbours = get_neighbour_pks(self.model,
                                       self.pk,
                                       filterset=self.filterset,
                                       ordering=self.ordering)

        # Support for incoming next/prior requests via a GET
        if 'next' in self.request.GET or 'prior' in self.request.GET:
            self.ref = get_object_or_404(self.model, pk=self.pk)

            # If requesting the next or prior object look for that
            # FIXME: Totally fails for Ranks, the get dictionary fails when there are ties!
            #        Doesn't generalise well at all. Must find a general way to do this for
            #        arbitrary orders. Still should specify orders in models that create unique
            #        ordering not reliant on pk break ties.
            if neighbours:
                if 'next' in self.request.GET and not neighbours[1] is None:
                    self.pk = self.object_browser[1]
                elif 'prior' in self.request.GET and not neighbours[0] is None:
                    self.pk = self.object_browser[0]

            self.obj = get_object_or_404(self.model, pk=self.pk)
            self.kwargs["pk"] = self.pk
        else:
            self.obj = get_object_or_404(self.model, pk=self.pk)

        # Add this information to the view (so it's available in the context).
        self.object_browser = neighbours

        self.format = get_object_display_format(self.request.GET)

        collect_rich_object_fields(self)

        return self.obj
Пример #39
0
 def __init__(self, *args, **kwargs):
     super(SalidaInsumoForm, self).__init__(*args, **kwargs)
     user = CuserMiddleware.get_user()
     cuenta = inventario.Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
         self.fields['activos'].queryset = ActivoInsumo.objects.filter(
             Q(bodega=cuenta.bodega, vendido=False) | Q(salidainsumo=self.instance))
         self.fields['destino'].queryset = Bodega.objects.all().exclude(id=cuenta.bodega.id)
Пример #40
0
 def clean(self):
     if self.instance.pk == None:
         user = CuserMiddleware.get_user()
         cuenta = inventario.Cuenta.objects.filter(pk=user.pk).first()
         if cuenta:
             return super(ActivoInsumoForm, self).clean()
         else:
             raise forms.ValidationError("Necesita tener una cuenta de bodega para registrar el activo no serial")
Пример #41
0
 def clean(self):
     if self.instance.pk == None:
         user = CuserMiddleware.get_user()
         cuenta = inv.Cuenta.objects.filter(pk=user.pk).first()
         if cuenta:
             self.instance.creado_por = cuenta
             return super(GeoActivoForm, self).clean()
         else:
             raise forms.ValidationError("Necesita tener una cuenta para crear el Apta de Salida")
Пример #42
0
 def clean(self):
     if self.instance.pk == None:
         user = CuserMiddleware.get_user()
         cuenta = inventario.Cuenta.objects.filter(pk=user.pk).first()
         if cuenta:
             self.instance.creado_por = cuenta
             return super(EntradaInsumoForm, self).clean()
         else:
             raise forms.ValidationError("Necesita tener una cuenta de bodega para registrar la entrada de insumos")
Пример #43
0
 def clean(self):
     if self.instance.pk == None:
         user = CuserMiddleware.get_user()
         cuenta = inventario.Cuenta.objects.filter(pk=user.pk).first()
         if cuenta:
             self.instance.bodega = cuenta.bodega
             return super(ActaRequisicionForm, self).clean()
         else:
             raise forms.ValidationError("Necesita tener una cuenta de bodega para crear el Apta de Requisicion")
Пример #44
0
def get_agency(user=None):
    from agencies.models import Agency
    if not user:
        user = CuserMiddleware.get_user()
    try:
        agency = user.agent_profile.agency
    except:
        agency = Agency.objects.get(id=settings.DEFAULT_AGENCY_ID)
    return agency
Пример #45
0
 def create(self, validated_data):
     user = CuserMiddleware.get_user()
     service = venta.Service.objects.filter(userservice__user = user).first()
     row = {
         'name': validated_data['name'],
         'service': service,
         'image': validated_data['image']
     }
     return venta.Category.objects.create(**row)
Пример #46
0
 def get_queryset(self):
     qs = super(NoteViewSet, self).get_queryset()
     user = CuserMiddleware.get_user()
     if user:
         if user.is_superuser:
             return qs
         else:
             return qs.filter(agency=get_agency())
     else:
         return qs.filter(agency=get_agency())
Пример #47
0
 def __init__(self, *args, **kwargs):
     super(GeoActivoForm, self).__init__(*args, **kwargs)
     user = CuserMiddleware.get_user()
     cuenta = inv.Cuenta.objects.filter(pk=user.pk).first()
     if self.instance.pk == None:
         if cuenta:
             self.fields['activo'].queryset = inv.Activo.objects.filter(instalado=False, activado=True,
                                                                        bodega=cuenta.bodega)
         else:
             self.fields['activo'].queryset = inv.Activo.objects.filter(instalado=False, activado=True)
Пример #48
0
 def get_queryset(self):
     qs = super(LeadPropertyDetail, self).get_queryset()
     user = CuserMiddleware.get_user()
     if user:
         if user.is_superuser:
             return qs
         else:
             return qs.filter(agency=get_agency())
     else:
         return qs.filter(agency=get_agency())
Пример #49
0
 def get_queryset(self):
     qs = super(PropertyViewSet, self).get_queryset()
     user = CuserMiddleware.get_user()
     if user:
         if user.is_superuser:
             return qs.filter(approved=True)
         else:
             return qs.filter(agency=get_agency(), approved=True)
     else:
         return qs.filter(agency=get_agency(), approved=True)
Пример #50
0
 def get_query_set(self):
     qs = super(AgencyIsolatedHstoreManager, self).get_query_set()
     user = CuserMiddleware.get_user()
     if user:
         if user.is_superuser:
             return qs
         else:
             return qs.filter(agency=get_agency())
     else:
         return qs.filter(agency=get_agency())
Пример #51
0
 def get_queryset(self):
     lead_pk = self.kwargs.get('lead_pk', None)
     if lead_pk is not None:
         user = CuserMiddleware.get_user()
         if user:
             if user.is_superuser:
                 return LeadProperty.objects.filter(lead__pk=lead_pk)
             else:
                 return LeadProperty.objects.filter(lead__pk=lead_pk, agency=get_agency())
         else:
             return LeadProperty.objects.filter(lead__pk=lead_pk, agency=get_agency())
     return []
Пример #52
0
    def get_queryset(self):
        qs = super(MessageViewSet, self).get_queryset()
        user = CuserMiddleware.get_user()
        if user:
            if user.is_superuser:
                return qs.order_by('-processed')
            else:
                agency = get_agency()

                return qs.filter(mailbox=agency.mailbox).order_by('-processed')
        else:
            agency = get_agency()
            return qs.filter(mailbox=agency.mailbox).order_by('-processed')
Пример #53
0
 def __init__(self, *args, **kwargs):
   super(ClienteForm, self).__init__(*args, **kwargs)
   self.fields['fecha'].widget = CalendarWidget(
       attrs={'class': 'date'}, format="%d/%m/%Y")
   self.fields['fecha'].input_formats = ('%Y/%m/%d', '%d/%m/%Y')
   if self.instance.pk == None:
     user = CuserMiddleware.get_user()
     cuenta = inv.Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
       self.fields['piscina'].queryset = inv.Activo.objects.filter(
           vendido=False, bodega=cuenta.bodega)
     else:
       self.fields['piscina'].queryset = inv.Activo.objects.filter(
           vendido=False)
Пример #54
0
 def get_queryset(self):
     global db_start
     db_start = time.time()
     qs = Lead.objects.select_related('customer').all()
     source = self.request.QUERY_PARAMS.get('source', None)
     if source is not None:
         qs = qs.filter(source__icontains=source)
     user = CuserMiddleware.get_user()
     if user:
         if not user.is_superuser:
             qs = qs.filter(agency=get_agency())
     else:
         qs = qs.filter(agency=get_agency())
     return qs.distinct()
Пример #55
0
 def __init__(self, *args, **kwargs):
     super(ActaEntradaForm, self).__init__(*args, **kwargs)
     user = CuserMiddleware.get_user()
     cuenta = inventario.Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
         if self.fields.has_key('activos'):
             if self.instance.pk:
                 self.fields['activos'].queryset = Activo.objects.filter(vendido=False).exclude(
                     bodega=cuenta.bodega) | Activo.objects.filter(actaentrada=self.instance)
             else:
                 self.fields['activos'].queryset = Activo.objects.filter(vendido=False).exclude(
                     bodega=cuenta.bodega)
             # end if
         if self.fields.has_key('origen'):
             self.fields['origen'].queryset = Bodega.objects.exclude(pk=cuenta.bodega.pk)
Пример #56
0
 def create(self, validated_data):
     user = CuserMiddleware.get_user()
     service = venta.Service.objects.filter(userservice__user = user).first()
     data = {}
     if 'bill' in validated_data:
         data['bill'] = validated_data['bill']
     #end if
     if 'client' in validated_data:
         data['client']  = validated_data['client']
     #end if
     data['service'] = service
     order = venta.Order.objects.create(**data)
     for item in validated_data['products']:
         itemorder = venta.ItemOrder.objects.create(product=item['product'], count=item['count'])
         order.products.add(itemorder)
     #end for
     return order