From 82b05401f57713ca0e0eff149f4915bd184ee68f Mon Sep 17 00:00:00 2001 From: root Date: Fri, 21 Sep 2012 12:51:50 +0300 Subject: [PATCH] enhance timeline form, traffic charging support --- .../astakos/im/endpoints/quotaholder.py | 36 ++++++++++++++++---- snf-astakos-app/astakos/im/forms.py | 15 ++++---- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/snf-astakos-app/astakos/im/endpoints/quotaholder.py b/snf-astakos-app/astakos/im/endpoints/quotaholder.py index 29fe456..071b635 100644 --- a/snf-astakos-app/astakos/im/endpoints/quotaholder.py +++ b/snf-astakos-app/astakos/im/endpoints/quotaholder.py @@ -218,14 +218,37 @@ def _usage_units(timeline, details=0): def usage_units(timeline, details=0): - if details: - return list(_usage_units(timeline, details=1)) - else: - return _usage_units(timeline, details=0)[0] + return list(_usage_units(timeline, details=details)) def traffic_units(timeline, details=0): - pass + tu_total = 0 + target = None + issue_time = None + + for point in timeline: + target = point['target'] + issue_time = point['issue_time'] + tu = point['target_allocated_through'] + tu_total += tu + + if details: + yield (target, + point['resource'], + point['name'], + issue_time, + tu, + tu_total) + + if not tu_total: + return + + yield (target, + 'total', + point['resource'], + issue_time, + tu_total//len(timeline), + tu_total) def timeline_charge(entity, resource, after, before, details, charge_type): @@ -244,5 +267,6 @@ def timeline_charge(entity, resource, after, before, details, charge_type): after = after, before = before, get_timeline = [[entity, resource, key]]) - return charge_units(timeline, details=details) + cu = charge_units(timeline, details=details) + return cu diff --git a/snf-astakos-app/astakos/im/forms.py b/snf-astakos-app/astakos/im/forms.py index 061c946..ce9eb0b 100644 --- a/snf-astakos-app/astakos/im/forms.py +++ b/snf-astakos-app/astakos/im/forms.py @@ -102,7 +102,7 @@ class LocalUserCreationForm(UserCreationForm): self.fields.keyOrder.extend(['recaptcha_challenge_field', 'recaptcha_response_field', ]) if get_latest_terms(): - self.fields.keyOrder.append('has_signed_terms') + self.fields.keyOrder.append('has_signed_terms') if 'has_signed_terms' in self.fields: # Overriding field label since we need to apply a link @@ -603,12 +603,13 @@ class TimelineForm(forms.Form): ) start_date = forms.DateTimeField() end_date = forms.DateTimeField() - details = forms.BooleanField(required=False, label="detailed listing?") - operation = forms.ChoiceField(choices = ( - ('', '[Choose Charging Method]'), - ('charge_usage', 'Charge Usage'), - ('charge_traffic', 'Charge Traffic') - )) + details = forms.BooleanField(required=False, label="Detailed Listing") + operation = forms.ChoiceField( + label = 'Charge Method', + choices = ( ('', '-------------'), + ('charge_usage', 'Charge Usage'), + ('charge_traffic', 'Charge Traffic'), ) + ) def clean(self): super(TimelineForm, self).clean() d = self.cleaned_data -- 1.7.10.4