Skip to content

Commit 2b7c9c3

Browse files
authored
Merge pull request #5 from WoopyOnOff/development
Development to master merge
2 parents 8b233c5 + 47bd302 commit 2b7c9c3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+2280
-0
lines changed

.gitignore

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Django #
2+
*.log
3+
*.pot
4+
*.pyc
5+
__pycache__
6+
db.sqlite3
7+
media
8+
static
9+
settings.py
10+
11+
# Backup files #
12+
*.bak
13+
14+
# Python #
15+
*.py[cod]
16+
*$py.class
17+
18+
# Distribution / packaging
19+
.Python build/
20+
develop-eggs/
21+
dist/
22+
downloads/
23+
eggs/
24+
.eggs/
25+
lib/
26+
lib64/
27+
parts/
28+
sdist/
29+
var/
30+
wheels/
31+
*.egg-info/
32+
.installed.cfg
33+
*.egg
34+
*.manifest
35+
*.spec
36+
37+
# Installer logs
38+
pip-log.txt
39+
pip-delete-this-directory.txt
40+
41+
# Unit test / coverage reports
42+
htmlcov/
43+
.tox/
44+
.coverage
45+
.coverage.*
46+
.cache
47+
.pytest_cache/
48+
nosetests.xml
49+
coverage.xml
50+
*.cover
51+
.hypothesis/
52+
53+
# pyenv
54+
.python-version
55+
56+
# Environments
57+
.env
58+
.venv
59+
env/
60+
venv/
61+
ENV/
62+
env.bak/
63+
venv.bak/
64+

bourse/__init__.py

Whitespace-only changes.

bourse/admin.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from django.contrib import admin
2+
3+
# Register your models here.
4+
from .models import Event, UserList, Order, Item, OrderItem, Page
5+
6+
@admin.register(Event)
7+
class EventAdmin(admin.ModelAdmin):
8+
list_display = ('event_name','event_date','status')
9+
list_filter = ('event_date','status')
10+
11+
@admin.register(Item)
12+
class ItemAdmin(admin.ModelAdmin):
13+
list_display = ('name','price','is_sold','sold_date')
14+
fields = [('name','price')]
15+
16+
class ItemInline(admin.TabularInline):
17+
model = Item
18+
19+
@admin.register(UserList)
20+
class UserListAdmin(admin.ModelAdmin):
21+
inlines = [ItemInline]
22+
23+
class OrderItemInline(admin.TabularInline):
24+
model = OrderItem
25+
#fields = [('code')]
26+
27+
@admin.register(Order)
28+
class OrderAdmin(admin.ModelAdmin):
29+
list_display = ('id','event','created_date','is_validated')
30+
inlines = [OrderItemInline]
31+
32+
@admin.register(Page)
33+
class PageAdmin(admin.ModelAdmin):
34+
read_only_fields = ['created', 'timestamp']

bourse/apps.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.apps import AppConfig
2+
3+
4+
class BourseConfig(AppConfig):
5+
name = 'bourse'

bourse/context_processors.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from django.conf import settings
2+
from .models import Event
3+
4+
def site_params(request):
5+
return {'SITE_TITLE_SETTING': settings.SITE_TITLE, 'SITE_SIGNATURE_SETTING': settings.SITE_SIGNATURE}
6+
7+
def active_event(request):
8+
active_event = Event.objects.filter(status__in=[1,2,3])
9+
return {'active_event':active_event}

bourse/fixtures/pages.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
- model: bourse.page
3+
pk: 1
4+
fields:
5+
title: "Accueil"
6+
content: "<h1>Modifier le contenu dans l'admin</h1>"

bourse/forms.py

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
from django import forms
2+
from django.forms.models import inlineformset_factory, BaseInlineFormSet, modelformset_factory
3+
from django.core.exceptions import ValidationError
4+
from django.utils.translation import ugettext_lazy as _
5+
6+
from django.contrib.auth.models import User
7+
from .models import Item, UserList, Event, Order, OrderItem
8+
9+
class UserForm(forms.ModelForm):
10+
class Meta:
11+
model = User
12+
fields = ['first_name','last_name','email']
13+
14+
class ItemForm(forms.ModelForm):
15+
name = forms.CharField(label='Nom du jeu')
16+
price = forms.IntegerField(label='Prix de vente',help_text=_('(Commission de 1€ incluse)'))
17+
def clean_price(self):
18+
data = self.cleaned_data['price']
19+
if data < 1:
20+
raise ValidationError(_('Valeur non valide - Entrez un prix supérieur à 1€'), code='invalid')
21+
return data
22+
class Meta:
23+
model = Item
24+
fields = ['name','price']
25+
26+
#ItemFormSet = inlineformset_factory(UserList,Item,form=ItemForm,fields=('name','price',),extra=1,can_delete=True)
27+
28+
class ListValidateForm(forms.Form):
29+
description_text = _('Êtes-vous certain de vouloir valider votre formulaire ? Cette action est irréversible.')
30+
class Meta:
31+
model = UserList
32+
fields = None
33+
############################
34+
# Adminitration
35+
############################
36+
class EventForm(forms.ModelForm):
37+
class Meta:
38+
model = Event
39+
fields = ('status',)
40+
41+
class OrderModelForm(forms.ModelForm):
42+
class Meta:
43+
model = Order
44+
fields = ('is_validated',)
45+
46+
OrderItemFormset = modelformset_factory(OrderItem,fields=('item',),extra=1)
47+
48+
class ItemTextForm(forms.Form):
49+
item_pk = forms.IntegerField(label='Code du jeu',help_text=_('Entrer le code du jeu à ajouter.'))
50+
def __init__(self, *args, **kwargs):
51+
event_id = kwargs.pop('event_id', None)
52+
super(ItemTextForm, self).__init__(*args, **kwargs)
53+
def clean_item_pk(self):
54+
data = self.cleaned_data['item_pk']
55+
if not Item.objects.filter(pk=data,is_sold=False,list__list_status=3).exists() or OrderItem.objects.filter(item=data):
56+
raise ValidationError(_('Jeu non trouvé, ou déjà vendu.'), code='invalid')
57+
return data
58+
# Orders
59+
#OrderItemFormset = inlineformset_factory(Order, OrderItem, fields=('item',),extra=1,widgets={'item:':forms.TextInput(attrs={'class': 'form-control','placeholder':'Entrer le code du jeu'})})
60+
61+
class ListManageForm(forms.ModelForm):
62+
class Meta:
63+
model = UserList
64+
fields = ('list_status',)
65+
66+
class InvoiceClientForm(forms.Form):
67+
client_name = forms.CharField(label='Nom ou raison sociale')
68+
addr_1 = forms.CharField(label='Adresse')
69+
addr_2 = forms.CharField(label='Adresse (suite)',initial=' ',show_hidden_initial=False, required=False)
70+
cp_city = forms.CharField(label='CP Ville')
71+
def __init__(self, *args, **kwargs):
72+
event_id = kwargs.pop('event_id', None)
73+
super(InvoiceClientForm, self).__init__(*args, **kwargs)
74+
def clean_form(self):
75+
data = self.cleaned_data['client_name','addr_1','addr_2','cp_city']
76+
return data

bourse/migrations/0001_initial.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Generated by Django 3.0.4 on 2020-03-10 18:44
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
initial = True
11+
12+
dependencies = [
13+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
14+
]
15+
16+
operations = [
17+
migrations.CreateModel(
18+
name='Event',
19+
fields=[
20+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21+
('event_name', models.CharField(max_length=200)),
22+
('event_location', models.CharField(max_length=200)),
23+
('event_date', models.DateTimeField(verbose_name='Event Date')),
24+
('status', models.IntegerField(default=2, verbose_name='Event Status')),
25+
('comments', models.TextField(max_length=2000)),
26+
],
27+
),
28+
migrations.CreateModel(
29+
name='Item',
30+
fields=[
31+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
32+
('name', models.CharField(max_length=100)),
33+
('price', models.IntegerField(verbose_name='Sold Price')),
34+
('created_date', models.DateTimeField(auto_now_add=True, verbose_name='Date Created')),
35+
('is_sold', models.BooleanField(default=False, verbose_name='Item Sold')),
36+
('sold_date', models.DateTimeField(verbose_name='Date Sold')),
37+
],
38+
),
39+
migrations.CreateModel(
40+
name='Order',
41+
fields=[
42+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
43+
('created_date', models.DateTimeField(auto_now_add=True, verbose_name='Date Created')),
44+
('is_validated', models.BooleanField(default=False, verbose_name='Order Validated')),
45+
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bourse.Event')),
46+
],
47+
),
48+
migrations.CreateModel(
49+
name='UserList',
50+
fields=[
51+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
52+
('list_status', models.IntegerField(default=1, verbose_name='List Status')),
53+
('created_date', models.DateTimeField(auto_now_add=True, verbose_name='Date Created')),
54+
('validated_date', models.DateTimeField(verbose_name='Date Validated')),
55+
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bourse.Event')),
56+
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
57+
],
58+
),
59+
migrations.CreateModel(
60+
name='OrderItem',
61+
fields=[
62+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
63+
('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bourse.Item')),
64+
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bourse.Order')),
65+
],
66+
),
67+
migrations.AddField(
68+
model_name='item',
69+
name='list',
70+
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bourse.UserList'),
71+
),
72+
]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 3.0.4 on 2020-03-27 18:12
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('bourse', '0001_initial'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='event',
15+
name='status',
16+
field=models.IntegerField(choices=[(1, 'Saisie Ouverte'), (2, 'Saisie Fermée'), (3, 'Bourse Ouverte'), (4, 'Bourse Fermée')], default=2, verbose_name='Event Status'),
17+
),
18+
]
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Generated by Django 3.0.4 on 2020-03-29 14:28
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('bourse', '0002_auto_20200327_1912'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='item',
15+
name='sold_date',
16+
field=models.DateTimeField(blank=True, verbose_name='Date Sold'),
17+
),
18+
migrations.AlterField(
19+
model_name='userlist',
20+
name='list_status',
21+
field=models.IntegerField(choices=[(1, 'Editable'), (2, 'Validated'), (3, 'Archived')], default=1, verbose_name='List Status'),
22+
),
23+
migrations.AlterField(
24+
model_name='userlist',
25+
name='validated_date',
26+
field=models.DateTimeField(blank=True, verbose_name='Date Validated'),
27+
),
28+
]

0 commit comments

Comments
 (0)