Skip to content

Commit 17a876c

Browse files
committed
Import files from local git
1 parent 2b2ac19 commit 17a876c

35 files changed

Lines changed: 3427 additions & 0 deletions

__init__.py

Whitespace-only changes.

admin.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from django.contrib import admin
2+
from .models import Bucket, Item, IdentifierType, Identifier
3+
4+
5+
class IdentiferInline(admin.TabularInline):
6+
model = Identifier
7+
extra = 0
8+
9+
10+
class ItemAdmin(admin.ModelAdmin):
11+
fieldsets = [
12+
(None, {'fields': ['name', 'bucket']}),
13+
('Additional Info', {'fields': ['desc'], 'classes': ['collapse']})
14+
]
15+
inlines = [IdentiferInline]
16+
17+
18+
class ItemInline(admin.TabularInline):
19+
model = Item
20+
extra = 1
21+
22+
23+
# Register your models here.
24+
admin.site.register(Bucket)
25+
admin.site.register(Item, ItemAdmin)
26+
admin.site.register(IdentifierType)

forms.py

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
from django.forms import ModelForm, Form, TypedChoiceField, CharField
2+
from crispy_forms.helper import FormHelper
3+
from crispy_forms.layout import Layout, Fieldset, Div, Field
4+
from .models import Item, Identifier, IdentifierType
5+
6+
7+
class SearchForm(Form):
8+
identifier_types = [(i.id, i.name)
9+
for i in IdentifierType.objects.all()]
10+
identifier_types.insert(0, (0, 'Name'))
11+
search_property = TypedChoiceField(
12+
choices=identifier_types,
13+
coerce=int,
14+
empty_value=0
15+
)
16+
search_keyword = CharField()
17+
18+
def __init__(self, *args, **kwargs):
19+
self.helper = FormHelper()
20+
self.helper.form_tag = False
21+
self.helper.layout = Layout(
22+
Div(
23+
Div(
24+
Field('search_property', css_class='form-helper'),
25+
css_class='col-sm-6'
26+
),
27+
Div(
28+
Field('search_keyword', css_class='form-helper'),
29+
css_class='col-sm-6'
30+
),
31+
css_class='row'
32+
)
33+
)
34+
35+
super(SearchForm, self).__init__(*args, **kwargs)
36+
37+
38+
class ItemForm(ModelForm):
39+
40+
class Meta:
41+
model = Item
42+
fields = ['name', 'desc', 'bucket']
43+
44+
def __init__(self, *args, **kwargs):
45+
self.helper = FormHelper()
46+
self.helper.form_tag = False
47+
self.helper.layout = Layout(
48+
Div(
49+
Div('name', css_class='col-md-6'),
50+
Div('bucket', css_class='col-md-6'),
51+
css_class='row'
52+
),
53+
Field('desc', rows=2, cols=50)
54+
)
55+
56+
super(ItemForm, self).__init__(*args, **kwargs)
57+
self.fields['bucket'].required = True
58+
59+
60+
class BucketItemForm(ModelForm):
61+
62+
class Meta:
63+
model = Item
64+
fields = ['name', 'desc', 'bucket']
65+
66+
def __init__(self, *args, **kwargs):
67+
self.helper = FormHelper()
68+
self.helper.form_tag = False
69+
self.helper.layout = Layout(
70+
Field('name'),
71+
Field('desc', rows=2, cols=50),
72+
Field('bucket', type='hidden')
73+
)
74+
75+
super(BucketItemForm, self).__init__(*args, **kwargs)
76+
77+
78+
class IdentifierForm(ModelForm):
79+
80+
class Meta:
81+
model = Identifier
82+
fields = ['type', 'value']
83+
84+
def __init__(self, *args, **kwargs):
85+
self.helper = FormHelper()
86+
self.helper.form_tag = False
87+
self.helper.layout = Layout(
88+
Div(
89+
Div('type', css_class='col-md-6'),
90+
Div('value', css_class='col-md-6'),
91+
css_class='row'
92+
)
93+
)
94+
95+
super(IdentifierForm, self).__init__(*args, **kwargs)

migrations/0001_initial.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
]
11+
12+
operations = [
13+
migrations.CreateModel(
14+
name='Bucket',
15+
fields=[
16+
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
17+
('name', models.CharField(max_length=255)),
18+
('created', models.DateField()),
19+
],
20+
),
21+
migrations.CreateModel(
22+
name='Identifier',
23+
fields=[
24+
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
25+
('value', models.CharField(max_length=255)),
26+
],
27+
),
28+
migrations.CreateModel(
29+
name='IdentifierType',
30+
fields=[
31+
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
32+
('name', models.CharField(max_length=255)),
33+
('regex', models.CharField(max_length=255)),
34+
],
35+
),
36+
migrations.CreateModel(
37+
name='Item',
38+
fields=[
39+
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
40+
('name', models.CharField(max_length=255)),
41+
('desc', models.TextField()),
42+
('created', models.DateField()),
43+
('bucket', models.ForeignKey(to='inventory.Bucket')),
44+
],
45+
),
46+
migrations.AddField(
47+
model_name='identifier',
48+
name='item',
49+
field=models.ForeignKey(to='inventory.Item'),
50+
),
51+
migrations.AddField(
52+
model_name='identifier',
53+
name='type',
54+
field=models.ForeignKey(to='inventory.IdentifierType'),
55+
),
56+
]
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.db import migrations, models
5+
import django.utils.timezone
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('inventory', '0001_initial'),
12+
]
13+
14+
operations = [
15+
migrations.AlterField(
16+
model_name='bucket',
17+
name='created',
18+
field=models.DateField(default=django.utils.timezone.now),
19+
),
20+
]
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.db import migrations, models
5+
import django.utils.timezone
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('inventory', '0002_auto_20170417_1142'),
12+
]
13+
14+
operations = [
15+
migrations.AlterField(
16+
model_name='item',
17+
name='created',
18+
field=models.DateField(default=django.utils.timezone.now),
19+
),
20+
]
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('inventory', '0003_auto_20170417_1149'),
12+
]
13+
14+
operations = [
15+
migrations.AlterField(
16+
model_name='item',
17+
name='bucket',
18+
field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, blank=True, null=True, to='inventory.Bucket'),
19+
),
20+
migrations.AlterField(
21+
model_name='item',
22+
name='desc',
23+
field=models.TextField(blank=True),
24+
),
25+
]

migrations/__init__.py

Whitespace-only changes.

models.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
from django.db import models
2+
from django.utils import timezone
3+
4+
5+
class Bucket(models.Model):
6+
"""Represents a bucket to store items in"""
7+
name = models.CharField(max_length=255)
8+
created = models.DateField(default=timezone.now)
9+
10+
def __str__(self):
11+
return self.name
12+
13+
14+
class IdentifierType(models.Model):
15+
name = models.CharField(max_length=255)
16+
regex = models.CharField(max_length=255)
17+
18+
def __str__(self):
19+
return self.name
20+
21+
22+
class Item(models.Model):
23+
"""Represents an item to be managed"""
24+
name = models.CharField(max_length=255)
25+
desc = models.TextField(blank=True)
26+
bucket = models.ForeignKey(
27+
Bucket,
28+
on_delete=models.SET_NULL,
29+
blank=True,
30+
null=True
31+
)
32+
created = models.DateField(default=timezone.now)
33+
34+
def __str__(self):
35+
return self.name
36+
37+
38+
class Identifier(models.Model):
39+
type = models.ForeignKey(IdentifierType, on_delete=models.CASCADE)
40+
item = models.ForeignKey(Item, on_delete=models.CASCADE)
41+
value = models.CharField(max_length=255)
42+
43+
def __str__(self):
44+
return self.type.name + ': ' + self.value

static/css/bootstrap-grid.min.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)