Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 41 additions & 15 deletions donate/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,32 +108,39 @@ def pay_now(request, purpose):
data = get_final_data(request, obj, purpose)
else:
messages.errors(request,'Invalid Form')
print(f"\033[93m pay_now \033[0m")
return render(request, 'payment_status.html', data)

@csrf_exempt
def form_valid(request, form, purpose):
"""
If the form is valid, save the associated model.
This method saves the Payee & CdFossLanguages records.
Payee record is used to store payment information.
CdFossLanguages record stores mapping of user and foss which the user is eligible to download.
"""
print(f"\033[92m Form is valid \033[0m")
# Save Payee record
form_data = form.save(commit=False)
form_data.reqId = CHANNEL_ID+str(display.value(datetime.now().strftime('%Y%m%d%H%M%S'))[0:20])
# form_data.reqId = CHANNEL_ID+str(display.value(datetime.now().strftime('%Y%m%d%H%M%S'))[0:20])
form_data.reqId = "abc"
form_data.user = request.user
form_data.status = 0
form_data.expiry = calculate_expiry()
form_data.purpose = purpose
form_data.save()
payee_obj = form_data
print(f"\033[97m Form data is saved \033[0m")
# Save CdFossLanguages record
# foss_ids = form.cleaned_data.get('foss_id')
# languages = form.cleaned_data.get('language_id')
# level_ids = form.cleaned_data.get('level_id')
fosses = form.cleaned_data.get('foss_id').split(',')
foss_languages = form.cleaned_data.get('language_id').split(',|')
levels = form.cleaned_data.get('level_id').split(',')

foss_ids = form.cleaned_data.get('foss_id')
languages = form.cleaned_data.get('language_id')
level_ids = form.cleaned_data.get('level_id')
fosses = foss_ids.split(',')
foss_languages = languages.split(',|')
levels = level_ids.split(',')

payee_id = payee_obj.pk
# payee_id = payee_obj.pk
foss_level = 0

for i in range(len(fosses)):
foss_category = FossCategory.objects.get(pk=int(fosses[i]))
if int(levels[i]):
Expand All @@ -150,7 +157,7 @@ def form_valid(request, form, purpose):
if language not in ('','None'):
foss_language = Language.objects.get(pk=int(language))
cd_foss_langs = CdFossLanguages()
cd_foss_langs.payment = Payee.objects.get(pk=payee_id)
cd_foss_langs.payment = Payee.objects.get(pk=payee_obj.pk)
cd_foss_langs.foss = foss_category
cd_foss_langs.lang = foss_language
if foss_level:
Expand All @@ -165,24 +172,31 @@ def form_invalid(request, form):
If the form is invalid, re-render the context data with the
data-filled form and errors.
"""

messages.warning(request, 'Invalid form payment request.')
return redirect('cdcontent:cdcontenthome')


@csrf_exempt
def controller(request, purpose):
print(f"\033[92m 1 Inside controller of initiate_payment \033[0m")
print(f"\033[92m purpose : {purpose} \033[0m")
form = PayeeForm(request.POST)
if request.method == 'POST':
if form.is_valid():
# form_valid function creates Payee & CdFossLanguages records.
# & returns Payee record
payee_obj_new = form_valid(request, form, purpose)
print(f"\033[95m FORM IS VALID \033[0m")
else:
form_invalid(request, form)
if purpose != 'cdcontent':
participant_form = reg_success(request, 'general')

if purpose != 'cdcontent': # purpose = event_id in case of ILW
participant_form = reg_success(request, 'general')
participant_form.payment_status = payee_obj_new
try :
participant_form.save()
except :
except Exception as e:
return redirect('training:list_events', status='myevents')
data = get_final_data(request, payee_obj_new, purpose)
return render(request, 'payment_status.html', data)
Expand All @@ -202,6 +216,7 @@ def encrypted_data(request, obj, purpose):
request_id = obj.reqId
STdata = request_id + str(request.user.id) + str(user_name) + str(amount) + purpose + CHANNEL_ID + CHANNEL_KEY
s = display.value(str(STdata))
print(f"\033[92m Encrypted Data : {s} \033[0m")
return s


Expand Down Expand Up @@ -317,6 +332,17 @@ def validate(request):
context["validate"] = "fail"
return HttpResponse(json.dumps(context), content_type='application/json')

# import requests
# def temp(request):
# template_name = 'reg_success.html'
# name = request.POST.get('name')
# email = request.POST.get('email')
# phone = request.POST.get('phone')
# event_obj = request.POST.get('event')
# context = {
# name = ''
# }
# return render(request, template_name, context)

def receipt(request):
response = HttpResponse(content_type='application/pdf')
Expand Down
2 changes: 1 addition & 1 deletion events/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ class ViewEventFilter(django_filters.FilterSet):
event_start_date = django_filters.DateFromToRangeFilter()
event_end_date = django_filters.DateFromToRangeFilter()
event_type = django_filters.ChoiceFilter(choices=[('FDP', 'Paid FDP'), ('Workshop', 'Blended Mode Workshop'),('sdp', 'Student Training Programme'),('TPDP', 'Teachers Professional Development Program'
), ('SSDP', 'School Students Development Program')])
), ('SSDP', 'School Students Development Program'), ('PDP', 'Professional Development Program'), ('CDP', 'Community Development Program'),])


def __init__(self, *args, **kwargs):
Expand Down
10 changes: 7 additions & 3 deletions events/templates/payment_status.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,13 @@ <h4 style="margin-top: 32px;">
{% block jsblock %}
<script type="text/javascript">
function loading()
{
window.document.test.submit();
return;
{
// alert('auto submitting form');
// window.document.test.submit();
alert('Payment success!');
// window.location.href = 'http://127.0.0.1:8000/training/reg_success/paid/';

// return;
}
</script>
{% endblock %}
6 changes: 5 additions & 1 deletion training/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
from django.contrib import admin

# Register your models here.
from .models import ILWFossMdlCourses
from .models import ILWFossMdlCourses, Company

class CompanyAdmin(admin.ModelAdmin):
pass

admin.site.register(ILWFossMdlCourses)
admin.site.register(Company, CompanyAdmin)
14 changes: 13 additions & 1 deletion training/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,18 @@ class RegisterUser(forms.ModelForm):
required = False,
error_messages = {'required': 'component type is required.'},
)
# company = forms.ModelChoiceField(
# widget = forms.Select(attrs = {'class' : 'ac-state'}),
# queryset = Company.objects.order_by('name'),
# empty_label = "--- Select Company ---",
# help_text = ""
# )
# city = forms.ModelChoiceField(
# widget = forms.Select(attrs = {'class' : 'ac-city'}),
# queryset = City.objects.order_by('name'),
# empty_label = "--- Select City ---",
# help_text = ""
# )
foss_language = forms.ModelChoiceField(
queryset = Language.objects.order_by('name'),
required = False,
Expand All @@ -41,7 +53,7 @@ class RegisterUser(forms.ModelForm):
phone = forms.RegexField(regex=r'^\+?1?\d{8,15}$', error_messages = {'required': 'Enter valid phone number.'},)
class Meta(object):
model = Participant
fields = ['name', 'email', 'state', 'gender', 'amount', 'foss_language']
fields = ['name', 'email', 'state', 'gender', 'amount', 'foss_language', 'company', 'city']

def __init__(self, *args, **kwargs):
super(RegisterUser, self).__init__(*args, **kwargs)
Expand Down
48 changes: 48 additions & 0 deletions training/migrations/0012_auto_20240515_1424.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2024-05-15 08:54
from __future__ import unicode_literals

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('events', '0047_testattendance_mdlgrade'),
('training', '0011_auto_20230127_1859'),
]

operations = [
migrations.CreateModel(
name='Company',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=250)),
('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)),
('added_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)),
],
options={
'verbose_name_plural': 'Companies',
'ordering': ['name'],
},
),
migrations.AddField(
model_name='trainingevents',
name='city',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='events.City'),
),
migrations.AlterField(
model_name='trainingevents',
name='event_type',
field=models.CharField(choices=[('', '-----'), ('FDP', 'Paid FDP'), ('Workshop', 'Blended Mode Workshop'), ('sdp', 'Student Training Programme'), ('TPDP', 'Teachers Professional Development Program'), ('SSDP', 'School Students Development Program'), ('PDP', 'Professional Development Program'), ('CDP', 'Community Development Program')], max_length=50),
),
migrations.AddField(
model_name='trainingevents',
name='company',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='training.Company'),
),
]
27 changes: 27 additions & 0 deletions training/migrations/0013_auto_20240516_0017.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2024-05-15 18:47
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('events', '0047_testattendance_mdlgrade'),
('training', '0012_auto_20240515_1424'),
]

operations = [
migrations.AddField(
model_name='participant',
name='city',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='events.City'),
),
migrations.AddField(
model_name='participant',
name='company',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='training.Company'),
),
]
19 changes: 18 additions & 1 deletion training/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,27 @@

EVENT_TYPE_CHOICES =(
('', '-----'), ('FDP', 'Paid FDP'), ('Workshop', 'Blended Mode Workshop'),('sdp', 'Student Training Programme'),('TPDP', 'Teachers Professional Development Program'
), ('SSDP', 'School Students Development Program')
), ('SSDP', 'School Students Development Program'), ('PDP', 'Professional Development Program'), ('CDP', 'Community Development Program'),
)


REGISTRATION_TYPE_CHOICES =(
('', '-----'), (1, 'Subscribed College'),(2, 'Manual Registration')
)

class Company(models.Model):
name = models.CharField(max_length=250)
added_by = models.ForeignKey(User, on_delete=models.PROTECT)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)

class Meta:
verbose_name_plural = "Companies"
ordering = ['name']

def __str__(self):
return self.name

class TrainingEvents(models.Model):

event_type = models.CharField(max_length = 50, choices = EVENT_TYPE_CHOICES)
Expand All @@ -39,6 +52,8 @@ class TrainingEvents(models.Model):
training_status = models.PositiveSmallIntegerField(default=0)
entry_date = models.DateTimeField(auto_now_add = True)
entry_user = models.ForeignKey(User, on_delete=models.PROTECT)
company = models.ForeignKey(Company, on_delete=models.PROTECT, null=True, blank=True)
city = models.ForeignKey(City, on_delete=models.PROTECT, null=True, blank=True)


def __str__(self):
Expand All @@ -60,6 +75,8 @@ class Participant(models.Model):
foss_language = models.ForeignKey(Language, on_delete=models.PROTECT, null=True )
payment_status = models.ForeignKey(Payee, on_delete=models.PROTECT, null=True)
reg_approval_status = models.PositiveSmallIntegerField(default=0)
company = models.ForeignKey(Company, on_delete=models.PROTECT, null=True, blank=True)
city = models.ForeignKey(City, on_delete=models.PROTECT, null=True, blank=True)

class Meta(object):
unique_together = ('event', 'user', 'payment_status')
Expand Down
Loading