diff --git a/app/dmanager/forms.py b/app/dmanager/forms.py index 8df64ba..5d6670e 100644 --- a/app/dmanager/forms.py +++ b/app/dmanager/forms.py @@ -4,5 +4,5 @@ from wtforms import validators, ValidationError from wtforms.fields.html5 import EmailField class ActivateForm(FlaskForm): - period = SelectField('Domain Period', choices=[('1 Year', 12), ('2 Years', 24)]) + period = SelectField('Domain Period', choices=[(12, '1 Year'), (24, '2 Years'), (36, '3 Years')], coerce=int) submit = SubmitField('Activate') diff --git a/app/smanager/routes.py b/app/smanager/routes.py index 37fb1b1..53bc447 100644 --- a/app/smanager/routes.py +++ b/app/smanager/routes.py @@ -33,13 +33,16 @@ def activate(itemid=0): abort(404) service = Service.query.filter_by(pid=itemid).first() - price = float(service.price) + if service.enabled == True and service.warning == False: + abort(404) + ppm = float(service.price) form = ActivateForm(period=int(service.period)) owner = service.owner if owner.confirmed and form.validate_on_submit(): - if owner.wallet < price: - flash('Insufficient Funds') + total = ppm * form.period.data + if owner.wallet < total: + flash('Activation costs {} {}. Insufficient Funds'.format(total, owner.currency)) return redirect(url_for('uinvoice.transactions')) current_app.logger.info('[{}] Charge service: {}'.format(owner.email, service.description)) today = datetime.utcnow() @@ -48,7 +51,7 @@ def activate(itemid=0): extradays = relativedelta(today, days=+(service.daysleft)) service.date_last_charge = today + extradays service.period = form.period.data - service.daysleft = daysleft.days + extradays.days - 1 + service.daysleft = daysleft.days + extradays.days service.warning = False service.enabled = True db.session.commit() @@ -64,5 +67,5 @@ def activate(itemid=0): return redirect(url_for('admin.list_items')) else: return redirect(url_for('main.dashboard')) - return render_template('smanager/activate.html', form=form, service=service, total=service.price) + return render_template('smanager/activate.html', form=form, service=service, ppm=ppm, total=(ppm * service.period)) diff --git a/app/templates/smanager/activate.html b/app/templates/smanager/activate.html index 54effcc..8c98153 100644 --- a/app/templates/smanager/activate.html +++ b/app/templates/smanager/activate.html @@ -1,6 +1,29 @@ {% extends "base.html" %} -{% block title %}Activate service #{{ service.pid }}{% endblock %} +{% block head %} +{{ super() }} + +{% endblock %} + +{% block title %}Activate service{% endblock %} {% block page_content %} @@ -8,20 +31,20 @@