Exemple #1
0
def get_win_breakdowns(win_id, request):
    url = settings.BREAKDOWNS_AP + '?win__id=' + win_id
    resp = rabbit.get(url, request=request)
    if resp.status_code != 200:
        raise Http404
    else:
        return resp.json()['results']
Exemple #2
0
def get_win_advisors(win_id, request):
    url = settings.ADVISORS_AP + '?win__id=' + win_id
    resp = rabbit.get(url, request=request)
    if resp.status_code != 200:
        raise Http404
    else:
        return resp.json()['results']
Exemple #3
0
    def _get_valid_win(self, pk, request):
        """ Raise SecurityException if Win not valid, else return Win dict """

        win_resp = get_limited_win(pk, request)

        # likely because already submitted
        if not win_resp.status_code == 200:
            raise self.SecurityException(
                """Sorry, this record is not available. If the form has already
                been submitted, then the record cannot be viewed or
                resubmitted.
                """)

        win_dict = win_resp.json()

        # is it within security window?
        created = date_parser(win_dict["created"])
        window_extent = created + relativedelta(days=self.ACCEPTANCE_WINDOW)
        now = timezone.now()
        if now > window_extent:
            raise self.SecurityException(
                "Sorry, this record is no longer available for review.")

        # is the confirmation already completed?
        confirmation_url = "{}?win={}".format(
            settings.CONFIRMATIONS_AP,
            win_dict['id'],
        )
        confirmation_dict = rabbit.get(confirmation_url).json()
        if confirmation_dict["count"]:
            raise self.SecurityException(
                "Sorry, this confirmation was already completed.")

        return win_dict
def get_win(win_id, request):
    url = settings.WINS_AP + '?id=' + win_id
    resp = rabbit.get(url, request=request)
    if resp.status_code != 200:
        raise Http404
    else:
        return resp.json()['results'][0]
Exemple #5
0
def get_win(win_id, request):
    url = settings.WINS_AP + '?id=' + win_id
    resp = rabbit.get(url, request=request)
    if resp.status_code != 200:
        raise Http404
    else:
        return resp.json()['results'][0]
def get_win_breakdowns(win_id, request):
    url = settings.BREAKDOWNS_AP + '?win__id=' + win_id
    resp = rabbit.get(url, request=request)
    if resp.status_code != 200:
        raise Http404
    else:
        return resp.json()['results']
def get_win_advisors(win_id, request):
    url = settings.ADVISORS_AP + '?win__id=' + win_id
    resp = rabbit.get(url, request=request)
    if resp.status_code != 200:
        raise Http404
    else:
        return resp.json()['results']
Exemple #8
0
 def get(self, request):
     data_response = rabbit.get(settings.CSV_AP, request=request)
     today_date = datetime.datetime.utcnow().strftime('%Y-%m-%d')
     filename = 'ew-data-{}.zip'.format(today_date)
     resp = HttpResponse(data_response, content_type='application/zip')
     resp['Content-Disposition'] = 'attachment; filename=' + filename
     return resp
 def get(self, request):
     data_response = rabbit.get(settings.CSV_AP, request=request, stream=True)
     today_date = datetime.datetime.utcnow().strftime('%Y-%m-%d')
     filename = 'ew-data-{}.zip'.format(today_date)
     data_iter = data_response.iter_content(8192)
     resp = StreamingHttpResponse(data_iter, content_type='application/zip')
     resp['Content-Disposition'] = 'attachment; filename=' + filename
     return resp
Exemple #10
0
    def dispatch(self, request, *args, **kwargs):

        response = rabbit.get(settings.IS_LOGGED_IN_AP, request=request)
        is_logged_in = response.json()
        if not request.alice_id or not is_logged_in:
            return self.redirect_to_login(self.request.get_full_path(),
                                          force_text(settings.LOGIN_URL))
        return super(LoginRequiredMixin,
                     self).dispatch(request, *args, **kwargs)
    def dispatch(self, request, *args, **kwargs):

        response = rabbit.get(settings.IS_LOGGED_IN_AP, request=request)
        is_logged_in = response.json()
        if not request.alice_id or not is_logged_in:
            return self.redirect_to_login(
                self.request.get_full_path(),
                force_text(settings.LOGIN_URL)
            )
        return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
 def get(self, request):
     data_response = rabbit.get(settings.EW_CSV_AP, request=request)
     today = datetime.datetime.utcnow()
     today_str = today.strftime('%Y-%m-%d')
     if today.month < 4:
         fy = '{}-{}'.format(today.year-1, today.year)  
     else:
         fy = '{}-{}'.format(today.year, today.year+1)
     filename = 'ew-{}-wins-{}.csv'.format(fy, today_str)
     resp = HttpResponse(data_response.content, content_type='text/csv')
     resp['Content-Disposition'] = 'attachment; filename=' + filename
     return resp
Exemple #13
0
    def _get_advisor_fields(self):
        """ Make list of lists of advisor field names and specs """

        advisor_schema = rabbit.get(settings.ADVISORS_AP + "schema/").json()
        advisor_fields = []
        num_advisor_fields = 5
        for i in range(0, num_advisor_fields):
            instance_fields = []
            for name, spec in advisor_schema.items():
                if name == 'win':
                    # don't want a field for the foreign key in the form
                    continue
                field_name = "advisor_{}_{}".format(i, name)
                instance_fields.append((name, field_name, spec))
            advisor_fields.append(instance_fields)
        return advisor_fields
    def _get_advisor_fields(self):
        """ Make list of lists of advisor field names and specs """

        advisor_schema = rabbit.get(settings.ADVISORS_AP + "schema/").json()
        advisor_fields = []
        num_advisor_fields = 5
        for i in range(0, num_advisor_fields):
            instance_fields = []
            for name, spec in advisor_schema.items():
                if name == 'win':
                    # don't want a field for the foreign key in the form
                    continue
                field_name = "advisor_{}_{}".format(i, name)
                instance_fields.append((name, field_name, spec))
            advisor_fields.append(instance_fields)
        return advisor_fields
    def get_context_data(self, **kwargs):
        context = TemplateView.get_context_data(self, **kwargs)

        # get all user's wins
        url = settings.WINS_AP + '?user__id=' + str(self.request.user.id)
        win_response = rabbit.get(url, request=self.request).json()
        wins = win_response['results']

        # parse dates
        for win in wins:
            win['created'] = date_parser(win['created'])
            win['date'] = date_parser(win['date'])
            if win['updated']:
                win['updated'] = date_parser(win['updated'])
            win['sent'] = [date_parser(d) for d in win['sent']]
            if win['responded']:
                win['responded']['created'] = (
                    date_parser(win['responded']['created'])
                )
            win['last_modified'] = win['updated'] or win['created']

        # split wins up for user into unsent, sent and responded
        unsent = [w for w in wins if not w['complete']]
        context['unsent'] = sorted(unsent, key=lambda w: w['last_modified'])

        responded = [w for w in wins if w['responded']]
        context['responded'] = sorted(
            responded,
            key=lambda w: w['company_name'],
        )

        # skip ones that weren't yet sent as well as not responded yet
        # better to show not sent wins as a seperate table in UI
        sent = [
            w for w in wins
            if w['complete'] and w['sent'] and w not in context['responded']
        ]

        context['sent'] = sorted(
            sent,
            key=lambda w: w['sent'][0],
            reverse=True,
        )

        return context
Exemple #16
0
    def get_context_data(self, **kwargs):
        context = TemplateView.get_context_data(self, **kwargs)

        # get all user's wins
        url = settings.WINS_AP + '?user__id=' + str(self.request.user.id)
        win_response = rabbit.get(url, request=self.request).json()
        wins = win_response['results']

        # parse dates
        for win in wins:
            win['created'] = date_parser(win['created'])
            win['date'] = date_parser(win['date'])
            if win['updated']:
                win['updated'] = date_parser(win['updated'])
            win['sent'] = [date_parser(d) for d in win['sent']]
            if win['responded']:
                win['responded']['created'] = (date_parser(
                    win['responded']['created']))
            win['last_modified'] = win['updated'] or win['created']

        # split wins up for user into unsent, sent and responded
        unsent = [w for w in wins if not w['complete']]
        context['unsent'] = sorted(unsent, key=lambda w: w['last_modified'])

        responded = [w for w in wins if w['responded']]
        context['responded'] = sorted(
            responded,
            key=lambda w: w['company_name'],
        )

        sent = [
            w for w in wins if w['complete'] and w not in context['responded']
        ]
        context['sent'] = sorted(
            sent,
            key=lambda w: w['sent'][0],
            reverse=True,
        )

        return context
    def _get_valid_win(self, pk, request):
        """ Raise SecurityException if Win not valid, else return Win dict """

        win_resp = get_limited_win(pk, request)

        # likely because already submitted
        if not win_resp.status_code == 200:
            raise self.SecurityException(
                """Sorry, this record is not available. If the form has already
                been submitted, then the record cannot be viewed or
                resubmitted.
                """
            )

        win_dict = win_resp.json()

        # is it within security window?
        created = date_parser(win_dict["created"])
        window_extent = created + relativedelta(days=self.ACCEPTANCE_WINDOW)
        now = timezone.now()
        if now > window_extent:
            raise self.SecurityException(
                "Sorry, this record is no longer available for review."
            )

        # is the confirmation already completed?
        confirmation_url = "{}?win={}".format(
            settings.CONFIRMATIONS_AP,
            win_dict['id'],
        )
        confirmation_dict = rabbit.get(confirmation_url).json()
        if confirmation_dict["count"]:
            raise self.SecurityException(
                "Sorry, this confirmation was already completed."
            )

        return win_dict
Exemple #18
0
def get_win_details(win_id, request):
    url = "{}{}/".format(settings.WIN_DETAILS_AP, win_id)
    resp = rabbit.get(url, request=request)
    return resp
Exemple #19
0
def get_limited_win(win_id, request):
    url = "{}{}/".format(settings.LIMITED_WINS_AP, win_id)
    resp = rabbit.get(url, request=request)
    return resp
def get_limited_win(win_id, request):
    url = "{}{}/".format(settings.LIMITED_WINS_AP, win_id)
    resp = rabbit.get(url, request=request)
    return resp
Exemple #21
0
 def get(self, request, *args, **kwargs):
     rabbit.get(settings.LOGOUT_AP, request=request)  # Data server log out
     response = RedirectView.get(self, request, *args, **kwargs)
     response.delete_cookie("alice", domain=cookie_domain())
     return response
def get_win_details(win_id, request):
    url = "{}{}/".format(settings.WIN_DETAILS_AP, win_id)
    resp = rabbit.get(url, request=request)
    return resp