Ejemplo n.º 1
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
Ejemplo n.º 2
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
Ejemplo n.º 3
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 ""
Ejemplo n.º 4
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
Ejemplo n.º 5
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")
Ejemplo n.º 6
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
Ejemplo n.º 7
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
Ejemplo n.º 8
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)
Ejemplo n.º 9
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())
Ejemplo n.º 10
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
Ejemplo n.º 11
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
Ejemplo n.º 12
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
Ejemplo n.º 13
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
Ejemplo n.º 14
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
Ejemplo n.º 15
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
Ejemplo n.º 16
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)
Ejemplo n.º 17
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)
Ejemplo n.º 18
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()
Ejemplo n.º 19
0
 def published(self):
     user = CuserMiddleware.get_user()
     if user.is_superuser:
         books = self
     else:
         books = self.filter(published=True)
     return books
Ejemplo n.º 20
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")
Ejemplo n.º 21
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)
Ejemplo n.º 22
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)
Ejemplo n.º 23
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()
Ejemplo n.º 24
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
Ejemplo n.º 25
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
Ejemplo n.º 26
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")
Ejemplo n.º 27
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)
Ejemplo n.º 28
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
Ejemplo n.º 29
0
 def delete(self, *args, **kwargs):
     TrackingEvent.objects.create(
         operation=TrackingEvent.DELETE,
         user=CuserMiddleware.get_user(),
         date=now(),
         obj=self,
     )
     super().delete(*args, **kwargs)
Ejemplo n.º 30
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
Ejemplo n.º 31
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")
Ejemplo n.º 32
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
Ejemplo n.º 33
0
 def save(self, commit=True):
     activo = super(ActivoInsumoForm, self).save(False)
     user = CuserMiddleware.get_user()
     cuenta = Cuenta.objects.filter(pk=user.pk).first()
     if cuenta:
         activo.bodega = cuenta.bodega
         activo.save()
     #end def
     return activo
Ejemplo n.º 34
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)
Ejemplo n.º 35
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")
Ejemplo n.º 36
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")
Ejemplo n.º 37
0
	def index(self, request, extra_context=None):
		if extra_context is None:
			extra_context = {}
		# get current user
		user = CuserMiddleware.get_user()
		
		if not user.is_superuser:
			# Adding my context here
			extra_context.update({'insight': 
				{
					'individual': {
						'male': Individual.objects.filter(mol7aka=user.mol7aka, gender=Individual.MALE).count(),
						'female': Individual.objects.filter(mol7aka=user.mol7aka, gender=Individual.FEMALE).count(),
						'handicapped': Individual.objects.filter(mol7aka=user.mol7aka, handicapped=True).count()
					},
					# 'mol7aka': {
					# 	'employees': CustomUser.objects.filter(mol7aka=user.mol7aka, is_staff=True, is_superuser=False).count(),
					# },
					'reports': {
						'count': Report.objects.filter(mol7aka=user.mol7aka).count()
					},
					'residentials': {
						'approved': SoknaRequest.objects.filter(mol7aka=user.mol7aka, status=SoknaRequest.STATUS.APPROVED).count(),
						'rejected': SoknaRequest.objects.filter(mol7aka=user.mol7aka, status=SoknaRequest.STATUS.REJECTED).count(),
						'pending': SoknaRequest.objects.filter(mol7aka=user.mol7aka, status=SoknaRequest.STATUS.PENDING).count(),
					}
				}
			})		
		else:
			# Adding my context here
			extra_context.update({'insight': 
				{
					'individual': {
						'male': Individual.objects.filter(gender=Individual.MALE).count(),
						'female': Individual.objects.filter(gender=Individual.FEMALE).count(),
						'handicapped': Individual.objects.filter(handicapped=True).count()
					},
					'mol7aka': {
						'count': Mol7aka.objects.count(),
						'employees': CustomUser.objects.filter(is_staff=True, is_superuser=False).count(),
					},
					'reports': {
						'count': Report.objects.count(),
						# get Top 5 reports
						'mol7akat': Mol7aka.objects.values('name').annotate(total_reports=Count('reports')).order_by('-total_reports')[:5]
					},
					# get Top 10 jobs
					'jobs': Job.objects.values('job_name').annotate(dcount=Count('individuals')).order_by('-dcount')[:10],
					'residentials': {
						'approved': SoknaRequest.objects.filter(status=SoknaRequest.STATUS.APPROVED).count(),
						'rejected': SoknaRequest.objects.filter(status=SoknaRequest.STATUS.REJECTED).count(),
						'pending': SoknaRequest.objects.filter(status=SoknaRequest.STATUS.PENDING).count(),
					}
				}
			})
		return super().index(request, extra_context=extra_context)
Ejemplo n.º 38
0
def return_assigned_domains():
    current_user = CuserMiddleware.get_user()
    from role.models import Assignment
    from django.db.models import Count
    assigned_domains = Assignment.objects.filter(type=3, actor=current_user.id)
    assigned_domains = assigned_domains.values('target_domain_id',
                                               'target_domain__name')
    assigned_domains = assigned_domains.annotate(
        dcount=Count('target_domain_id'))
    return assigned_domains
Ejemplo n.º 39
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())
Ejemplo n.º 40
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())
Ejemplo n.º 41
0
 def published(self):
     """
     We show every objects to staff as a preview
     even if they are not published, yet.
     """
     user = CuserMiddleware.get_user()
     qs = self
     if user and not user.is_staff:
         qs = qs.filter(published=True)
     return qs
Ejemplo n.º 42
0
 def save(self, commit=False):
     master = super(MasterEdit, self).save(commit)
     if master.eliminado:
         user = CuserMiddleware.get_user()
         if user:
             master.eliminado_por = user
         # end if
     # end if
     master.save()
     return master
Ejemplo n.º 43
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)
Ejemplo n.º 44
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())
Ejemplo n.º 45
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)
Ejemplo n.º 46
0
 def user_adventures(self):
     user = CuserMiddleware.get_user()
     adventures = self.prefetch()
     try:
         if user.is_staff:
             products = Product.objects.user_authored(user)
         else:
             products = Product.objects.user_collection(user)
         return adventures.filter(product__in=products)
     except AttributeError:
         return self
Ejemplo n.º 47
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 []
Ejemplo n.º 48
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')
Ejemplo n.º 49
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)
Ejemplo n.º 50
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()
Ejemplo n.º 51
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)
Ejemplo n.º 52
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
Ejemplo n.º 53
0
def _create_event(instance, action):
    """
    Create a new event, getting the use if django-cuser is available.
    """
    user = None
    user_repr = repr(user)
    if CUSER:
        user = CuserMiddleware.get_user()
        user_repr = repr(user)
        if user is not None and user.is_anonymous():
            user = None
    return TrackingEvent.objects.create(
        action=action,
        object=instance,
        object_repr=repr(instance),
        user=user,
        user_repr=user_repr,
    )
Ejemplo n.º 54
0
	def save(self, *args, **kwargs):
		"""
		Save object in database, updating the datetimes accordingly.
		
		"""
		# Now in UTC
		now_datetime = timezone.now()

		# If we are in a creation, assigns creation_datetime
		if not self.id:
			self.creation_datetime = now_datetime

		# Las update datetime is always updated
		self.last_update_datetime = now_datetime
		
		# Current user is creator
		# (get current user with django-cuser middleware)
		self.creator_user = None
		current_user = CuserMiddleware.get_user()
		if not current_user is None and not current_user.is_anonymous():
			self.creator_user_id = current_user.id
		
		# Parent constructor call
		super(FieldTranslation, self).save(*args, **kwargs)
Ejemplo n.º 55
0
def test_view(request):
    user = CuserMiddleware.get_user()
    return HttpResponse(user and user.username or "")


    pass