Ejemplo n.º 1
0
 def get_context_data(self, **kwargs):
     context = {}
     open_leads = self.get_queryset().exclude(status="closed")
     close_leads = self.get_queryset().filter(status="closed")
     context["status"] = LEAD_STATUS
     context["open_leads"] = LeadSerializer(open_leads, many=True).data
     context["close_leads"] = LeadSerializer(close_leads, many=True).data
     context["source"] = LEAD_SOURCE
     users = []
     if self.request.user.role == "ADMIN" or self.request.user.is_superuser:
         users = User.objects.filter(
             is_active=True,
             company=self.request.company).order_by("email")
     elif self.request.user.google.all():
         users = []
     else:
         users = User.objects.filter(
             role="ADMIN",
             company=self.request.company).order_by("email")
     context["users"] = UserSerializer(users, many=True).data
     tag_ids = list(
         set(
             self.get_queryset().values_list(
                 "tags",
                 flat=True,
             )
         )
     )
     context["tags"] = TagsSerailizer(
         Tags.objects.filter(id__in=tag_ids), many=True).data
     context["countries"] = COUNTRIES
     return context
Ejemplo n.º 2
0
    def get_context_data(self, **kwargs):
        params = (self.request.query_params
                  if len(self.request.data) == 0 else self.request.data)
        queryset = self.model.objects.filter(
            org=self.request.org).order_by('-id')
        accounts = Account.objects.filter(org=self.request.org)
        contacts = Contact.objects.filter(org=self.request.org)
        if self.request.profile.role != "ADMIN" and not self.request.user.is_superuser:
            queryset = queryset.filter(
                Q(created_by=self.request.profile)
                | Q(assigned_to=self.request.profile)).distinct()
            accounts = accounts.filter(
                Q(created_by=self.request.profile)
                | Q(assigned_to=self.request.profile)).distinct()
            contacts = contacts.filter(
                Q(created_by=self.request.profile)
                | Q(assigned_to=self.request.profile)).distinct()

        if params:
            if params.get("name"):
                queryset = queryset.filter(name__icontains=params.get("name"))
            if params.get("account"):
                queryset = queryset.filter(account=params.get("account"))
            if params.get("stage"):
                queryset = queryset.filter(stage__contains=params.get("stage"))
            if params.get("lead_source"):
                queryset = queryset.filter(
                    lead_source__contains=params.get("lead_source"))
            if params.get("tags"):
                queryset = queryset.filter(
                    tags__in=json.loads(params.get("tags"))).distinct()

        context = {}
        results_opportunities = self.paginate_queryset(queryset.distinct(),
                                                       self.request,
                                                       view=self)
        opportunities = OpportunitySerializer(results_opportunities,
                                              many=True).data
        if results_opportunities:
            offset = queryset.filter(
                id__gte=results_opportunities[-1].id).count()
            if offset == queryset.count():
                offset = None
        else:
            offset = 0
        context.update({
            "opportunities_count": self.count,
            "offset": offset,
        })
        context["opportunities"] = opportunities
        context["accounts_list"] = AccountSerializer(accounts, many=True).data
        context["contacts_list"] = ContactSerializer(contacts, many=True).data
        context['tags'] = TagsSerailizer(Tags.objects.filter(), many=True).data
        context["stage"] = STAGES
        context["lead_source"] = SOURCES
        context["currency"] = CURRENCY_CODES

        return context
Ejemplo n.º 3
0
    def get_context_data(self, **kwargs):
        context = {}
        open_accounts = AccountSerializer(
            self.get_queryset().filter(status="open"), many=True).data
        close_accounts = AccountSerializer(
            self.get_queryset().filter(status="close"), many=True).data
        context["users"] = UserSerializer(User.objects.filter(
            is_active=True, company=self.request.company).order_by("email"),
                                          many=True).data
        context["open_accounts"] = open_accounts
        context["close_accounts"] = close_accounts
        context["industries"] = INDCHOICES
        context["per_page"] = self.request.POST.get("per_page")
        tag_ids = list(
            set(
                Account.objects.filter(
                    company=self.request.company).values_list("tags",
                                                              flat=True)))
        context["tags"] = TagsSerailizer(Tags.objects.filter(id__in=tag_ids),
                                         many=True).data
        if self.request.POST.get("tag", None):
            context["request_tags"] = self.request.POST.getlist("tag")
        elif self.request.GET.get("tag", None):
            context["request_tags"] = self.request.GET.getlist("tag")
        else:
            context["request_tags"] = None

        search = False
        if (self.request.POST.get("name") or self.request.POST.get("city")
                or self.request.POST.get("industry")
                or self.request.POST.get("tag")):
            search = True

        context["search"] = search

        tab_status = "Open"
        if self.request.POST.get("tab_status"):
            tab_status = self.request.POST.get("tab_status")
        context["tab_status"] = tab_status
        TIMEZONE_CHOICES = [(tz, tz) for tz in pytz.common_timezones]
        context["timezones"] = TIMEZONE_CHOICES
        context["settings_timezone"] = settings.TIME_ZONE

        return context
Ejemplo n.º 4
0
    def get_context_data(self, **kwargs):
        params = (
            self.request.query_params
            if len(self.request.data) == 0
            else self.request.data
        )
        queryset = self.model.objects.filter(company=self.request.company)
        if self.request.user.role != "ADMIN" and not self.request.user.is_superuser:
            queryset = queryset.filter(
                Q(created_by=self.request.user) | Q(assigned_to=self.request.user)
            ).distinct()
        
        if params:
            request_post = params
            if request_post:
                if request_post.get("name"):
                    queryset = queryset.filter(name__icontains=request_post.get("name"))
                if request_post.get("city"):
                    queryset = queryset.filter(
                        billing_city__contains=request_post.get("city")
                    )
                if request_post.get("industry"):
                    queryset = queryset.filter(
                        industry__icontains=request_post.get("industry")
                    )
                if request_post.get("tags"):
                    queryset = queryset.filter(tags__in=json.loads(request_post.get("tags"))).distinct()
        context = {}
        search = False
        if (
            params.get("name")
            or params.get("city")
            or params.get("industry")
            or params.get("tag")
        ):
            search = True
        context["search"] = search

        queryset_open = queryset.filter(status="open").order_by("id")
        results_accounts_open = self.paginate_queryset(
                        queryset_open.distinct(), self.request, view=self)
        accounts_open = AccountSerializer(
            results_accounts_open, many=True
        ).data
        context["per_page"] = 10
        context["active_accounts"] = {
            "accounts_count": self.count,
            "next": self.get_next_link(),
            "previous": self.get_previous_link(),
            "page_number":int(self.offset/10)+1,
            "open_accounts":accounts_open
            }

        queryset_close = queryset.filter(status="close").order_by("id")
        results_accounts_close = self.paginate_queryset(
                        queryset_close.distinct(), self.request, view=self)
        accounts_close = AccountSerializer(
            results_accounts_close, many=True
        ).data

        context["closed_accounts"] = {
            "accounts_count": self.count,
            "next": self.get_next_link(),
            "previous": self.get_previous_link(),
            "page_number":int(self.offset/10)+1,
            "close_accounts":accounts_close
            }

        context["users"] = UserSerializer(
            User.objects.filter(is_active=True, company=self.request.company).order_by("email"), many=True
        ).data   
        context["industries"] = INDCHOICES
        tag_ids = Account.objects.filter(
            company=self.request.company).values_list("tags", flat=True).distinct()
        context["tags"] = TagsSerailizer(
            Tags.objects.filter(id__in=tag_ids), many=True
        ).data
        if params.get("tag", None):
            context["request_tags"] = self.params.get("tag")
        else:
            context["request_tags"] = None

        TIMEZONE_CHOICES = [(tz, tz) for tz in pytz.common_timezones]
        context["timezones"] = TIMEZONE_CHOICES
        context["settings_timezone"] = settings.TIME_ZONE
        return context
Ejemplo n.º 5
0
    def get_context_data(self, **kwargs):
        params = (self.request.query_params
                  if len(self.request.data) == 0 else self.request.data)
        queryset = self.model.objects.filter(
            org=self.request.org).order_by('-id')
        if self.request.profile.role != "ADMIN" and not self.request.profile.is_admin:
            queryset = queryset.filter(
                Q(created_by=self.request.profile)
                | Q(assigned_to=self.request.profile)).distinct()

        if params:
            if params.get("name"):
                queryset = queryset.filter(name__icontains=params.get("name"))
            if params.get("city"):
                queryset = queryset.filter(
                    billing_city__contains=params.get("city"))
            if params.get("industry"):
                queryset = queryset.filter(
                    industry__icontains=params.get("industry"))
            if params.get("tags"):
                queryset = queryset.filter(
                    tags__in=json.loads(params.get("tags"))).distinct()

        context = {}
        queryset_open = queryset.filter(status="open")
        results_accounts_open = self.paginate_queryset(
            queryset_open.distinct(), self.request, view=self)
        if results_accounts_open:
            offset = queryset_open.filter(
                id__gte=results_accounts_open[-1].id).count()
            if offset == queryset_open.count():
                offset = None
        else:
            offset = 0
        accounts_open = AccountSerializer(results_accounts_open,
                                          many=True).data
        context["per_page"] = 10
        context["active_accounts"] = {
            "offset": offset,
            "open_accounts": accounts_open,
        }

        queryset_close = queryset.filter(status="close")
        results_accounts_close = self.paginate_queryset(
            queryset_close.distinct(), self.request, view=self)
        if results_accounts_close:
            offset = queryset_close.filter(
                id__gte=results_accounts_close[-1].id).count()
            if offset == queryset_close.count():
                offset = None
        else:
            offset = 0
        accounts_close = AccountSerializer(results_accounts_close,
                                           many=True).data

        context["closed_accounts"] = {
            "offset": offset,
            "close_accounts": accounts_close,
        }
        context["industries"] = INDCHOICES

        tags = Tags.objects.all()
        tags = TagsSerailizer(tags, many=True).data

        context['tags'] = tags

        return context