summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/budget/0007_luxpurchase_cat.py20
-rw-r--r--app/budget/admin.py32
-rw-r--r--app/budget/migrations/0001_initial.py36
-rw-r--r--app/budget/migrations/0002_alter_luxpurchase_amount.py18
-rw-r--r--app/budget/migrations/0003_alter_luxpurchase_category_alter_luxpurchase_source.py23
-rw-r--r--app/budget/migrations/0004_alter_luxpurchase_source.py19
-rw-r--r--app/budget/migrations/0005_luxspendingcategory_luxfixedmonthly.py33
-rw-r--r--app/budget/migrations/0006_remove_luxfixedmonthly_cat_and_more.py23
-rw-r--r--app/budget/migrations/0007_luxpurchase_cat.py19
-rw-r--r--app/budget/migrations/0008_remove_luxpurchase_category.py17
-rw-r--r--app/budget/migrations/0009_rename_cat_luxpurchase_category.py18
-rw-r--r--app/budget/migrations/0010_luxfixedmonthly_amount.py18
-rw-r--r--app/budget/migrations/0011_luxpaymentmethod_alter_luxfixedmonthly_amount_and_more.py31
-rw-r--r--app/budget/migrations/__init__.py0
-rw-r--r--app/budget/models.py80
-rw-r--r--app/budget/templates/budget/base.html35
-rw-r--r--app/budget/templates/budget/create_cat_form.html26
-rw-r--r--app/budget/templates/budget/create_form.html26
-rw-r--r--app/budget/templates/budget/luxpurchase_list.html58
-rw-r--r--app/budget/templates/budget/update_form.html20
-rw-r--r--app/budget/urls.py29
-rw-r--r--app/budget/views.py57
-rw-r--r--app/builder/views.py7
-rw-r--r--app/gtd/admin.py9
-rw-r--r--app/posts/build.py12
-rw-r--r--app/posts/models.py2
-rw-r--r--app/posts/templates/photo_essay_detail.html6
-rw-r--r--app/posts/templates/photo_essay_list.html47
-rw-r--r--app/posts/urls/__init__old.py4
-rw-r--r--app/posts/urls/friends_urls.py25
-rw-r--r--app/posts/urls/guide_urls.py30
-rw-r--r--app/posts/urls/range_urls.py20
-rw-r--r--app/posts/urls/trip_urls.py25
-rw-r--r--app/posts/views/photo_essay_views.py10
-rw-r--r--app/resume/admin.py59
-rw-r--r--app/resume/build.py75
-rw-r--r--app/resume/migrations/0001_initial.py49
-rw-r--r--app/resume/migrations/0002_auto_20151207_2105.py25
-rw-r--r--app/resume/migrations/0003_auto_20151211_1925.py19
-rw-r--r--app/resume/migrations/0004_job_resume.py37
-rw-r--r--app/resume/migrations/0005_job_slug.py18
-rw-r--r--app/resume/migrations/0006_auto_20190112_1257.py22
-rw-r--r--app/resume/migrations/0007_auto_20190113_1128.py18
-rw-r--r--app/resume/migrations/0008_auto_20190113_1139.py24
-rw-r--r--app/resume/migrations/0009_job_body_html.py18
-rw-r--r--app/resume/migrations/0010_auto_20190113_1147.py25
-rw-r--r--app/resume/migrations/0011_auto_20190114_0227.py23
-rw-r--r--app/resume/migrations/__init__.py0
-rw-r--r--app/resume/models.py98
-rw-r--r--app/resume/urls.py48
-rw-r--r--app/resume/views.py60
-rw-r--r--app/trading/admin.py2
-rw-r--r--app/utils/util.py18
53 files changed, 84 insertions, 1389 deletions
diff --git a/app/budget/0007_luxpurchase_cat.py b/app/budget/0007_luxpurchase_cat.py
deleted file mode 100644
index b7bb553..0000000
--- a/app/budget/0007_luxpurchase_cat.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-12 12:53
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0006_remove_luxfixedmonthly_cat_and_more'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='luxpurchase',
- name='cat',
- field=models.ForeignKey(default='Grocery & Home', on_delete=django.db.models.deletion.CASCADE, to='budget.luxspendingcategory'),
- preserve_default=False,
- ),
- ]
diff --git a/app/budget/admin.py b/app/budget/admin.py
deleted file mode 100644
index 0f578fb..0000000
--- a/app/budget/admin.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from django.contrib import admin
-from .models import LuxSource, LuxPurchase, LuxSpendingCategory, LuxFixedMonthly, LuxPaymentMethod
-
-
-@admin.register(LuxSpendingCategory)
-class SourceAdmin(admin.ModelAdmin):
- list_display = ('name',)
-
-
-@admin.register(LuxSource)
-class SourceAdmin(admin.ModelAdmin):
- list_display = ('name',)
-
-
-@admin.register(LuxPurchase)
-class PurchaseAdmin(admin.ModelAdmin):
- list_display = ('source', 'amount', 'category' )
- search_fields = ['source', 'amount']
- list_filter = ('category',)
-
- class Media:
- js = ('next-prev-links.js',)
-
-
-@admin.register(LuxFixedMonthly)
-class LuxFixedMonthlyAdmin(admin.ModelAdmin):
- list_display = ('name', 'amount', 'category', 'payment_method')
-
-
-@admin.register(LuxPaymentMethod)
-class LuxPaymentMethodAdmin(admin.ModelAdmin):
- list_display = ('name',)
diff --git a/app/budget/migrations/0001_initial.py b/app/budget/migrations/0001_initial.py
deleted file mode 100644
index 30bd5a1..0000000
--- a/app/budget/migrations/0001_initial.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-11 17:50
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- initial = True
-
- dependencies = [
- ]
-
- operations = [
- migrations.CreateModel(
- name='LuxSource',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=200)),
- ('date_recorded', models.DateTimeField(auto_now_add=True)),
- ],
- ),
- migrations.CreateModel(
- name='LuxPurchase',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('amount', models.IntegerField()),
- ('category', models.IntegerField(choices=[(0, 'Grocery and Home'), (1, 'Gas'), (2, 'Bus'), (3, 'Lodging'), (4, 'Books'), (5, 'Clothes'), (6, 'Eating Out'), (7, 'Misc')], default=0)),
- ('date_recorded', models.DateTimeField(auto_now_add=True)),
- ('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='budget.luxsource')),
- ],
- options={
- 'ordering': ('-date_recorded',),
- },
- ),
- ]
diff --git a/app/budget/migrations/0002_alter_luxpurchase_amount.py b/app/budget/migrations/0002_alter_luxpurchase_amount.py
deleted file mode 100644
index 06400dd..0000000
--- a/app/budget/migrations/0002_alter_luxpurchase_amount.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-11 18:06
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='luxpurchase',
- name='amount',
- field=models.DecimalField(decimal_places=2, max_digits=6),
- ),
- ]
diff --git a/app/budget/migrations/0003_alter_luxpurchase_category_alter_luxpurchase_source.py b/app/budget/migrations/0003_alter_luxpurchase_category_alter_luxpurchase_source.py
deleted file mode 100644
index a880acf..0000000
--- a/app/budget/migrations/0003_alter_luxpurchase_category_alter_luxpurchase_source.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-12 10:18
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0002_alter_luxpurchase_amount'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='luxpurchase',
- name='category',
- field=models.IntegerField(choices=[(0, 'Grocery & Home'), (1, 'Gas'), (2, 'Bus'), (3, 'Lodging'), (4, 'Books'), (5, 'Clothes'), (6, 'Eating Out'), (7, 'Misc')], default=0),
- ),
- migrations.AlterField(
- model_name='luxpurchase',
- name='source',
- field=models.IntegerField(choices=[(0, 'Walmart'), (1, 'Grocery Store'), (2, 'Gas Station'), (3, 'Amazon')], default=0),
- ),
- ]
diff --git a/app/budget/migrations/0004_alter_luxpurchase_source.py b/app/budget/migrations/0004_alter_luxpurchase_source.py
deleted file mode 100644
index 0eab270..0000000
--- a/app/budget/migrations/0004_alter_luxpurchase_source.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-12 10:46
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0003_alter_luxpurchase_category_alter_luxpurchase_source'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='luxpurchase',
- name='source',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='budget.luxsource'),
- ),
- ]
diff --git a/app/budget/migrations/0005_luxspendingcategory_luxfixedmonthly.py b/app/budget/migrations/0005_luxspendingcategory_luxfixedmonthly.py
deleted file mode 100644
index 66af470..0000000
--- a/app/budget/migrations/0005_luxspendingcategory_luxfixedmonthly.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-12 12:52
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0004_alter_luxpurchase_source'),
- ]
-
- operations = [
- migrations.CreateModel(
- name='LuxSpendingCategory',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=200)),
- ('date_recorded', models.DateTimeField(auto_now_add=True)),
- ],
- ),
- migrations.CreateModel(
- name='LuxFixedMonthly',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=200)),
- ('category', models.IntegerField(choices=[(0, 'Grocery & Home'), (1, 'Gas'), (2, 'Bus'), (3, 'Lodging'), (4, 'Books'), (5, 'Clothes'), (6, 'Eating Out'), (7, 'Misc')], default=0)),
- ('date_recorded', models.DateTimeField(auto_now_add=True)),
- ('cat', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='budget.luxspendingcategory')),
- ('source', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='budget.luxsource')),
- ],
- ),
- ]
diff --git a/app/budget/migrations/0006_remove_luxfixedmonthly_cat_and_more.py b/app/budget/migrations/0006_remove_luxfixedmonthly_cat_and_more.py
deleted file mode 100644
index 3631cc3..0000000
--- a/app/budget/migrations/0006_remove_luxfixedmonthly_cat_and_more.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-12 12:53
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0005_luxspendingcategory_luxfixedmonthly'),
- ]
-
- operations = [
- migrations.RemoveField(
- model_name='luxfixedmonthly',
- name='cat',
- ),
- migrations.AlterField(
- model_name='luxfixedmonthly',
- name='category',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='budget.luxspendingcategory'),
- ),
- ]
diff --git a/app/budget/migrations/0007_luxpurchase_cat.py b/app/budget/migrations/0007_luxpurchase_cat.py
deleted file mode 100644
index 7a8e548..0000000
--- a/app/budget/migrations/0007_luxpurchase_cat.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-12 12:56
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0006_remove_luxfixedmonthly_cat_and_more'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='luxpurchase',
- name='cat',
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='budget.luxspendingcategory'),
- ),
- ]
diff --git a/app/budget/migrations/0008_remove_luxpurchase_category.py b/app/budget/migrations/0008_remove_luxpurchase_category.py
deleted file mode 100644
index 7e2a0b9..0000000
--- a/app/budget/migrations/0008_remove_luxpurchase_category.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-12 13:15
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0007_luxpurchase_cat'),
- ]
-
- operations = [
- migrations.RemoveField(
- model_name='luxpurchase',
- name='category',
- ),
- ]
diff --git a/app/budget/migrations/0009_rename_cat_luxpurchase_category.py b/app/budget/migrations/0009_rename_cat_luxpurchase_category.py
deleted file mode 100644
index c0efeff..0000000
--- a/app/budget/migrations/0009_rename_cat_luxpurchase_category.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-12 13:16
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0008_remove_luxpurchase_category'),
- ]
-
- operations = [
- migrations.RenameField(
- model_name='luxpurchase',
- old_name='cat',
- new_name='category',
- ),
- ]
diff --git a/app/budget/migrations/0010_luxfixedmonthly_amount.py b/app/budget/migrations/0010_luxfixedmonthly_amount.py
deleted file mode 100644
index 15461d4..0000000
--- a/app/budget/migrations/0010_luxfixedmonthly_amount.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-13 10:48
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0009_rename_cat_luxpurchase_category'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='luxfixedmonthly',
- name='amount',
- field=models.DecimalField(decimal_places=2, max_digits=6, null=True),
- ),
- ]
diff --git a/app/budget/migrations/0011_luxpaymentmethod_alter_luxfixedmonthly_amount_and_more.py b/app/budget/migrations/0011_luxpaymentmethod_alter_luxfixedmonthly_amount_and_more.py
deleted file mode 100644
index 4186c52..0000000
--- a/app/budget/migrations/0011_luxpaymentmethod_alter_luxfixedmonthly_amount_and_more.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# Generated by Django 4.0.6 on 2022-11-13 11:11
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('budget', '0010_luxfixedmonthly_amount'),
- ]
-
- operations = [
- migrations.CreateModel(
- name='LuxPaymentMethod',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=200)),
- ],
- ),
- migrations.AlterField(
- model_name='luxfixedmonthly',
- name='amount',
- field=models.DecimalField(decimal_places=2, max_digits=6),
- ),
- migrations.AddField(
- model_name='luxfixedmonthly',
- name='payment_method',
- field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='budget.luxpaymentmethod'),
- ),
- ]
diff --git a/app/budget/migrations/__init__.py b/app/budget/migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/app/budget/migrations/__init__.py
+++ /dev/null
diff --git a/app/budget/models.py b/app/budget/models.py
deleted file mode 100644
index 512b019..0000000
--- a/app/budget/models.py
+++ /dev/null
@@ -1,80 +0,0 @@
-import calendar
-import datetime
-from django.db import models
-from django.db.models import Sum
-from django.urls import reverse
-from django.utils import timezone
-
-
-class LuxSource(models.Model):
- name = models.CharField(max_length=200)
- date_recorded = models.DateTimeField(auto_now_add=True)
-
- def __str__(self):
- return self.name
-
-
-class LuxSpendingCategory(models.Model):
- name = models.CharField(max_length=200)
- date_recorded = models.DateTimeField(auto_now_add=True)
-
- def __str__(self):
- return self.name
-
-
-class LuxPaymentMethod(models.Model):
- name = models.CharField(max_length=200)
-
- def __str__(self):
- return self.name
-
-
-class LuxFixedMonthly(models.Model):
- name = models.CharField(max_length=200)
- amount = models.DecimalField(max_digits=6, decimal_places=2)
- source = models.ForeignKey(LuxSource, on_delete=models.CASCADE)
- category = models.ForeignKey(LuxSpendingCategory, on_delete=models.CASCADE)
- payment_method = models.ForeignKey(LuxPaymentMethod, null=True, on_delete=models.CASCADE)
- date_recorded = models.DateTimeField(auto_now_add=True)
-
- def __str__(self):
- return self.name
-
-
-class LuxPurchaseStatsManager(models.Manager):
-
- def get_monthly_spending(self, month=timezone.now().month):
- last_day = calendar.monthrange(timezone.now().year, month)[1]
- start_date = datetime.date(timezone.now().year, month, 1)
- end_date = datetime.date(timezone.now().year, month, last_day)
- return self.filter(date_recorded__range=(start_date, end_date)).aggregate(Sum('amount'))
-
- def get_monthly_spending_by_category(self, cat, number_of_months=1):
- cat = LuxSpendingCategory.objects.get(name=cat)
- today = timezone.now()
- month = today.replace(day=1).month
- start_month = month - number_of_months + 1
- start_date = datetime.date(timezone.now().year, start_month, 1)
- last_day = calendar.monthrange(timezone.now().year, month)[1]
- end_date = datetime.date(timezone.now().year, month, last_day)
- return self.filter(date_recorded__range=(start_date, end_date)).filter(category=cat).aggregate(Sum('amount'))
-
-
-class LuxPurchase(models.Model):
- amount = models.DecimalField(max_digits=6, decimal_places=2)
- source = models.ForeignKey(LuxSource, on_delete=models.CASCADE)
- category = models.ForeignKey(LuxSpendingCategory, null=True, on_delete=models.CASCADE)
- date_recorded = models.DateTimeField(auto_now_add=True)
-
- class Meta:
- ordering = ('-date_recorded',)
-
- def __str__(self):
- return "%s - %s" %(self.amount, self.source.name)
-
- def get_absolute_url(self):
- return reverse("luxbudget:detail", kwargs={"pk": self.pk})
-
- objects = models.Manager() # The default manager.
- stats = LuxPurchaseStatsManager()
-
diff --git a/app/budget/templates/budget/base.html b/app/budget/templates/budget/base.html
deleted file mode 100644
index 9d6bfd0..0000000
--- a/app/budget/templates/budget/base.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<html>
-<head>
- <title>{% block pagetitle %}Luxagraf - Trading{% endblock %}</title>
- <meta charset="utf-8">
- <meta http-equiv="x-ua-compatible" content="ie=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- {%block stylesheet%}<link rel="stylesheet"
- href="/media/trading.css{%comment%}?{% now "u" %}{%endcomment%}"
- media="screen">{%endblock%}
- <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
-<style>
- select {
- border: 1px solid #dedddd;
- border-radius: 4px;
- padding: 2.2rem 0 0.75rem 0.75rem;
- width: 96%;
- font-size: 24px;
- font-size: 1.5rem;
- }
-</style>
- {%block extrahead%}{%endblock%}
-</head>
- </head>
- <body>
- <nav>
- <span class="nav-item"><a href="{% url 'luxbudget:list' %}">Home</a></span>
- <span class="nav-item"><a href="{% url 'luxbudget:createcatview' %}">Add Cat</a></span>
- </nav>
- {% block content %}
- {% endblock %}
- </body>
- {% block js %}
- {% endblock %}
-</html>
-
diff --git a/app/budget/templates/budget/create_cat_form.html b/app/budget/templates/budget/create_cat_form.html
deleted file mode 100644
index 03e996a..0000000
--- a/app/budget/templates/budget/create_cat_form.html
+++ /dev/null
@@ -1,26 +0,0 @@
-{% extends 'budget/base.html' %}
-{% load typogrify_tags %}
- {% block pagetitle %}Luxagraf - Record Purchase{% endblock %}
- {% block content %}
- <form id="id_form" action="{% url 'luxbudget:createcatview' %}" method="post" class="big">{% csrf_token %}
- {% for field in form %}
- <fieldset>
- {{ field.errors }}
- {% if field.name == 'status'%}
- <label class="hide" for="id_status">Status:</label>{{ field }}
- {% else %}
- {{ field.label_tag }} {{ field }}
- {% endif %}
- {% if field.help_text %}
- <p class="help">{{ field.help_text|safe }}</p>
- {% endif %}
- </fieldset>
-{% endfor %}
- <div class="flex">
- <input type="submit" name="post" class="btn" value="record purchase"/>
- </div>
- </form>
- {% endblock %}
-
- {% block js %}
- {% endblock %}
diff --git a/app/budget/templates/budget/create_form.html b/app/budget/templates/budget/create_form.html
deleted file mode 100644
index 2d38acf..0000000
--- a/app/budget/templates/budget/create_form.html
+++ /dev/null
@@ -1,26 +0,0 @@
-{% extends 'budget/base.html' %}
-{% load typogrify_tags %}
- {% block pagetitle %}Luxagraf - Record Purchase{% endblock %}
- {% block content %}
- <form id="id_form" action="{% url 'luxbudget:createview' %}" method="post" class="big">{% csrf_token %}
- {% for field in form %}
- <fieldset>
- {{ field.errors }}
- {% if field.name == 'status'%}
- <label class="hide" for="id_status">Status:</label>{{ field }}
- {% else %}
- {{ field.label_tag }} {{ field }}
- {% endif %}
- {% if field.help_text %}
- <p class="help">{{ field.help_text|safe }}</p>
- {% endif %}
- </fieldset>
-{% endfor %}
- <div class="flex">
- <input type="submit" name="post" class="btn" value="record purchase"/>
- </div>
- </form>
- {% endblock %}
-
- {% block js %}
- {% endblock %}
diff --git a/app/budget/templates/budget/luxpurchase_list.html b/app/budget/templates/budget/luxpurchase_list.html
deleted file mode 100644
index c03f14d..0000000
--- a/app/budget/templates/budget/luxpurchase_list.html
+++ /dev/null
@@ -1,58 +0,0 @@
-{% extends 'budget/base.html' %}
-{% load typogrify_tags %}
- {% block pagetitle %}Luxagraf - Record Purchase{% endblock %}
- {% block content %}
- <a href="record" class="btn" >Add New</a>
- <h3>Recent Purchases</h3>
- <table>
- <thead>
- <tr>
- <th>Date</th>
- <th>Store</th>
- <th>Category</th>
- <th>Amount</th>
- </tr>
- </thead>
- {% for object in object_list %}
- <tr>
- <td><a href="{{object.get_absolute_url}}">{{object.date_recorded|date:"m/j"}}</a></td>
- <td>{{object.source.name}}</td>
- <td>{{object.category.name}}</td>
- <td>${{object.amount}}</td>
- </tr>
- {% endfor %}
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="right">{{month}} Total:</td>
- <td>${{monthly_spending.amount__sum}}</td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="right">{{month}} Food Total:</td>
- <td>${{food_total.amount__sum}}</td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td class="right">{{month}} Lodging Total:</td>
- <td>${{lodge_total.amount__sum}}</td>
- </tr>
- </table>
-
- <h3>Previous Monthly Spending</h3>
- {{month_1}}: {{monthly_spending_1.amount__sum}}
- {{month_2}}: {{monthly_spending_2.amount__sum}}
- {{month_3}}: {{monthly_spending_3.amount__sum}}
-
-
- <h3>Spending by Category (Last 3 Months)</h3>
-
- {{cat.amount__sum}}
- {% endblock %}
-
-
diff --git a/app/budget/templates/budget/update_form.html b/app/budget/templates/budget/update_form.html
deleted file mode 100644
index b19efaa..0000000
--- a/app/budget/templates/budget/update_form.html
+++ /dev/null
@@ -1,20 +0,0 @@
-{% extends 'budget/base.html' %}
-{% load typogrify_tags %}
-{% block content %}
- <form id="id_form" action="" method="post" class="big">{% csrf_token %}
- {% for field in form %}
- <fieldset>
- {{ field.errors }}
- {% if field.name == 'status'%}
- <label class="hide" for="id_status">Status:</label>{{ field }}
- {% else %}
- {{ field.label_tag }} {{ field }}
- {% endif %}
- {% if field.help_text %}
- <p class="help">{{ field.help_text|safe }}</p>
- {% endif %}
- </fieldset>
-{% endfor %}
- <input type="submit" name="post" class="btn" value="update purchase"/>
- </form>
- {% endblock %}
diff --git a/app/budget/urls.py b/app/budget/urls.py
deleted file mode 100644
index ef7852f..0000000
--- a/app/budget/urls.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from django.urls import path, re_path
-
-from . import views
-
-app_name = "luxbudget"
-
-urlpatterns = [
- path(
- 'cat',
- views.LuxSourceModelFormView.as_view(),
- name='createcatview'
- ),
- path(
- 'record',
- views.PurchaseModelFormView.as_view(),
- name='createview'
- ),
- path(
- 'purchase/<pk>',
- views.PurchaseUpdateView.as_view(),
- name='detail'
- ),
- path(
- '',
- views.LuxPurchaseListView.as_view(),
- {'page':1},
- name='list'
- ),
-]
diff --git a/app/budget/views.py b/app/budget/views.py
deleted file mode 100644
index 6a34b1e..0000000
--- a/app/budget/views.py
+++ /dev/null
@@ -1,57 +0,0 @@
-import datetime
-from django.shortcuts import render
-from django.views.generic.edit import CreateView, UpdateView
-from django.utils import timezone
-from utils.views import PaginatedListView
-from .models import LuxPurchase, LuxSource
-
-class LuxSourceModelFormView(CreateView):
- model = LuxSource
- fields = ['name']
- success_url = '/spending/'
- template_name = 'budget/create_cat_form.html'
-
-
-class PurchaseModelFormView(CreateView):
- model = LuxPurchase
- fields = ['amount', 'source', 'category']
- success_url = '/spending/'
- template_name = 'budget/create_form.html'
-
-
-class PurchaseUpdateView(UpdateView):
- model = LuxPurchase
- fields = ['amount', 'source', 'category']
- success_url = '/spending/'
- template_name = 'budget/update_form.html'
-
-
-class LuxPurchaseListView(PaginatedListView):
- model = LuxPurchase
-
- def get_queryset(self):
- queryset = super(LuxPurchaseListView, self).get_queryset()
- return queryset[:30]
-
- def get_context_data(self, **kwargs):
- '''
- Get Monthly Spending for a nice bar chart
- '''
- # Call the base implementation first to get a context
- context = super(LuxPurchaseListView, self).get_context_data(**kwargs)
- context['monthly_spending'] = LuxPurchase.stats.get_monthly_spending()
- today = timezone.now()
- first = today.replace(day=1)
- month_1 = first - datetime.timedelta(days=1)
- month_2 = month_1.replace(day=1) - datetime.timedelta(days=1)
- month_3 = month_2.replace(day=1) - datetime.timedelta(days=1)
- context['month'] = today.strftime('%h')
- context['monthly_spending_1'] = LuxPurchase.stats.get_monthly_spending(month_1.month)
- context['month_1'] = month_1.strftime('%h')
- context['monthly_spending_2'] = LuxPurchase.stats.get_monthly_spending(month_2.month)
- context['month_2'] = month_2.strftime('%h')
- context['monthly_spending_3'] = LuxPurchase.stats.get_monthly_spending(month_3.month)
- context['month_3'] = month_3.strftime('%h')
- context['food_total'] = LuxPurchase.stats.get_monthly_spending_by_category("Grocery/Home", 1)
- context['lodge_total'] = LuxPurchase.stats.get_monthly_spending_by_category("Lodging", 1)
- return context
diff --git a/app/builder/views.py b/app/builder/views.py
index 211b585..c39297d 100644
--- a/app/builder/views.py
+++ b/app/builder/views.py
@@ -2,11 +2,11 @@ from django.shortcuts import render
from django.template import RequestContext
#from builder.base import BuildWriting, BuildWritingFeed, BuildMap, BuildPhotos, BuildProjects, BuildSitemap
#from jrnl.build import archive_builder, detail_builder, home_builder, rss_builder, map_builder
-from resume.build import pub_builder, resume_builder
+#from resume.build import pub_builder, resume_builder
from books.build import builder as book_builder
from sightings.build import builder as sightings_builder
from pages.build import BuildPages, BuildHome
-from posts.build import BuildJrnl, BuildFieldNotes, BuildSrc, BuildGuide, BuildEssays, BuildRange, BuildFriends, BuildFilms, BuildTrips, BuildSitemap
+from posts.build import BuildJrnl, BuildFieldNotes, BuildSrc, BuildGuide, BuildEssays, BuildRange, BuildFriends, BuildFilms, BuildTrips, BuildSitemap, BuildPhotoEssays
def do_build(request):
section = request.GET.get('id', '')
@@ -28,6 +28,9 @@ def do_build(request):
elif section == 'homepage':
context = {'message': 'Writing index to Disk'}
BuildHome("pages", "homepage").build()
+ elif section == 'photos':
+ context = {'message': 'Writing Photo Essasy to Disk'}
+ BuildPhotoEssays("posts", "post").build()
elif section == 'films':
context = {'message': 'Writing films to Disk'}
BuildFilms("posts", "post").build()
diff --git a/app/gtd/admin.py b/app/gtd/admin.py
index 7335727..49520f2 100644
--- a/app/gtd/admin.py
+++ b/app/gtd/admin.py
@@ -5,7 +5,9 @@ from utils.widgets import AdminImageWidget, LGEntryForm
from .models import (
WiredNote,
WiredPost,
- WiredUpdate
+ WiredUpdate,
+ GTDNote,
+ GTDProject
)
@admin.register(WiredPost)
class WiredPostAdmin(admin.ModelAdmin):
@@ -22,3 +24,8 @@ class WiredPostAdmin(admin.ModelAdmin):
class WiredUpdateAdmin(admin.ModelAdmin):
list_display = ('name', 'date')
+
+@admin.register(GTDNote)
+class GTDNoteAdmin(admin.ModelAdmin):
+ list_display = ('title', 'project','url', 'note_type' )
+ list_filter = ['project', 'note_type']
diff --git a/app/posts/build.py b/app/posts/build.py
index fdfcd1a..ba0fe27 100644
--- a/app/posts/build.py
+++ b/app/posts/build.py
@@ -175,6 +175,18 @@ class BuildFilms(BuildNew):
self.build_detail_view()
+class BuildPhotoEssays(BuildNew):
+
+ def get_model_queryset(self):
+ return self.model.objects.filter(post_type=PostType.PHOTO_ESSAY).filter(status__exact=1).order_by('-pub_date')
+
+ def build(self):
+ self.build_list_view(
+ base_path=reverse("photo_essay:list"),
+ paginate_by=30
+ )
+ self.build_detail_view()
+
class BuildTrips(BuildNew):
def get_model_queryset(self):
diff --git a/app/posts/models.py b/app/posts/models.py
index 6179fbe..ba578b8 100644
--- a/app/posts/models.py
+++ b/app/posts/models.py
@@ -135,6 +135,8 @@ class Post(models.Model):
return self.title
def get_absolute_url(self):
+ if self.post_type == PostType.PHOTO_ESSAY:
+ return reverse('photo_essay:detail', kwargs={"slug": self.slug})
if self.post_type == PostType.ESSAY:
return reverse('essays:detail', kwargs={"cat": self.get_post_topic_display(), "slug": self.slug})
if self.post_type == PostType.SRC:
diff --git a/app/posts/templates/photo_essay_detail.html b/app/posts/templates/photo_essay_detail.html
index 8195ae7..de735f2 100644
--- a/app/posts/templates/photo_essay_detail.html
+++ b/app/posts/templates/photo_essay_detail.html
@@ -9,7 +9,7 @@
{% block breadcrumbs %}{% include "lib/breadcrumbs.html" with breadcrumbs=breadcrumbs %}{% endblock %}
{% block primary %}
<main role="main">
- <figure class="large-top-image">{%with object=object_list%}
+ <figure class="large-top-image">
<a href="{{object.get_absolute_url}}" title="{{object.title}}">{%with image=object.featured_image%}
<img style="margin:0;" sizes="(max-width: 960px) 100vw"
srcset="{{image.get_srcset}}"
@@ -18,7 +18,7 @@
</a>
</figure>{%endwith%}
<div class="folio-wrapper">
- <article class="h-entry hentry content" itemscope itemType="http://schema.org/BlogPosting">
+ <article class="h-entry hentry" itemscope itemType="http://schema.org/BlogPosting">
<header id="header" class="post-header">
<h1 class="p-name post-title" itemprop="headline">{{object.title|smartypants|safe}}</h1>
<div class="post-dateline">
@@ -30,5 +30,5 @@
{{object.body_html|safe|smartypants}}
</div>
</div>
- </main>{%endwith%}
+ </main>
{% endblock%}
diff --git a/app/posts/templates/photo_essay_list.html b/app/posts/templates/photo_essay_list.html
new file mode 100644
index 0000000..e8bebfd
--- /dev/null
+++ b/app/posts/templates/photo_essay_list.html
@@ -0,0 +1,47 @@
+{% extends 'base.html' %}
+{%block htmlclass%}class="detail single"{% endblock %}
+{% load typogrify_tags %}
+{% load get_image_by_size %}
+{% load html5_datetime %}
+{% load pagination_tags %}
+{% block pagetitle %} Photos | luxagraf {% endblock %}
+{% block metadescription %} Recent Images {% endblock %}
+{%block bodyid%}class="photos" id="notes-archive"{%endblock%}
+{% block breadcrumbs %}{% include "lib/breadcrumbs.html" with breadcrumbs=breadcrumbs %}{% endblock %}
+{% block primary %}
+ <main class="archive-wrapper">
+ <div class="archive-intro">
+ <h1>Photos</h1>
+ <h3>I first picked up a camera in the late 1980s and started documenting trips into the mountains, inspired by <a href="https://en.wikipedia.org/wiki/Galen_Rowell">Galen Rowell</a>. These are ongoing projects, updated regularly.</h3>
+ <hr />
+ <h2>Join us. Subscribe to <em>Friends of a Long Year</em></h2>
+ <iframe target='_parent' style="border:none; background:white; width:100%;" title="embedded form for subscribing the the Friends of a Long Year newsletter" onload="resizeIframe(this)" src="{% url 'lttr:subscribe' slug='friends' %}"></iframe>
+ </div>
+ <ul class="photo-list">{% for object in object_list %}
+ <li class="h-entry hentry" itemscope itemType="http://schema.org/BlogPosting">{% get_image_by_size object.featured_image 'featured_photo_essay' as featured %}
+ <figure>
+ <a href="{{object.get_absolute_url}}">
+ <img src="{{featured}}" alt="{{object.featured_image.alt}} photographed by Scott Gilbertson">
+ </a>
+ <figcaption>
+ <h1 class="p-name" itemprop="headline">{{object.title|smartypants|safe}}</h1>
+ <time class="dt-published published dt-updated card-smcaps" datetime="{{object.pub_date|date:'c'}}" itemprop="datePublished"> &nbsp;&ndash; Last update: {{object.last_updated|date:"F Y"}}</time>
+ <span class="hide" itemprop="author" itemscope itemtype="http://schema.org/Person">by <span class="p-author h-card" ><span itemprop="name">Scott Gilbertson</span></span></span>
+ {%if object.location %}<span class="p-location h-adr adr card-smcaps" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place">(
+ {% if object.location.country_name == "United States" %}<span class="p-locality locality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/jrnl/united-states/" title="travel writing from the United States">{{object.location.state_name}}</a>, <span class="p-country-name">U.S.</span>{%else%}<span class="p-region">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.location.country_slug}}/" title="travel writing from {{object.location.country_name}}">{{object.location.country_name}}</a>{%endif%}
+ )</span>{%endif%}
+ </figcaption>
+ </figure>
+ </a>
+ </li>{%endfor%}
+ </ul>
+ </main>
+{% endblock%}
+{% block js %}
+
+<script>
+ function resizeIframe(obj) {
+ obj.style.height = (obj.contentWindow.document.body.scrollHeight - 75) + 'px';
+ }
+</script>
+{% endblock %}
diff --git a/app/posts/urls/__init__old.py b/app/posts/urls/__init__old.py
deleted file mode 100644
index 4993c34..0000000
--- a/app/posts/urls/__init__old.py
+++ /dev/null
@@ -1,4 +0,0 @@
-from .guide_urls import urlpatterns as guide_urlpatterns
-from .reviews_urls import urlpatterns as review_urlpatterns
-
-urlpatterns = review_urlpatterns + guide_urlpatterns
diff --git a/app/posts/urls/friends_urls.py b/app/posts/urls/friends_urls.py
deleted file mode 100644
index ca68ca0..0000000
--- a/app/posts/urls/friends_urls.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from django.urls import path, re_path, include
-from django.views.generic.base import RedirectView
-
-from ..views import friends_views as views
-
-app_name = "range"
-
-urlpatterns = [
- # path(
- # r'feed.xml',
- # views.FriendsRSSFeedView(),
- # name="feed"
- # ),
- # path(
- # r'<int:issue>/<str:slug>',
- # views.FriendsDetailView.as_view(),
- # name="friends-detail"
- # ),
- path(
- r'',
- views.FriendsListView.as_view(),
- {'page':1},
- name="friends-list"
- ),
-]
diff --git a/app/posts/urls/guide_urls.py b/app/posts/urls/guide_urls.py
deleted file mode 100644
index 5e2b37e..0000000
--- a/app/posts/urls/guide_urls.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from django.urls import path, re_path, include
-from django.views.generic.base import RedirectView
-
-from ..views import guide_views as views
-
-app_name = "guides"
-
-urlpatterns = [
- path(
- r'',
- views.GuideListView.as_view(),
- {'page':1},
- name="guide-list"
- ),
- path(
- r'<int:page>/',
- views.GuideListView.as_view(),
- name="guide-list"
- ),
- path(
- r'<str:topic>/<str:slug>',
- views.GuidePostDetailView.as_view(),
- name="guide-post-detail"
- ),
- path(
- r'<str:slug>/',
- views.GuideDetailView.as_view(),
- name="guide-detail"
- ),
-]
diff --git a/app/posts/urls/range_urls.py b/app/posts/urls/range_urls.py
deleted file mode 100644
index 65638ce..0000000
--- a/app/posts/urls/range_urls.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from django.urls import path, re_path, include
-from django.views.generic.base import RedirectView
-
-from ..views import range_views as views
-
-app_name = "range"
-
-urlpatterns = [
- path(
- r'',
- views.RangeListView.as_view(),
- {'page':1},
- name="list"
- ),
- path(
- r'<int:page>',
- views.RangeListView.as_view(),
- name="list"
- ),
-]
diff --git a/app/posts/urls/trip_urls.py b/app/posts/urls/trip_urls.py
deleted file mode 100644
index 7e9c95f..0000000
--- a/app/posts/urls/trip_urls.py
+++ /dev/null
@@ -1,25 +0,0 @@
-from django.urls import path, re_path, include
-from django.views.generic.base import RedirectView
-
-from ..views import trip_views as views
-
-app_name = "trips"
-
-urlpatterns = [
- path(
- r'<str:slug>',
- views.TripDetailView.as_view(),
- name="detail"
- ),
- path(
- r'<int:page>/',
- views.TripListView.as_view(),
- name="list"
- ),
- path(
- r'',
- views.TripListView.as_view(),
- {'page':1},
- name="list"
- ),
-]
diff --git a/app/posts/views/photo_essay_views.py b/app/posts/views/photo_essay_views.py
index 4f08910..8c35621 100644
--- a/app/posts/views/photo_essay_views.py
+++ b/app/posts/views/photo_essay_views.py
@@ -14,13 +14,11 @@ from taxonomy.models import Category
class PhotoEssayListView(PaginatedListView):
model = Post
# TODO: change this when I have an actual archive to show
- template_name = "photo_essay_detail.html"
+ template_name = "photo_essay_list.html"
def get_queryset(self):
queryset = super(PhotoEssayListView, self).get_queryset()
- return queryset.get(slug="dawn")
- # real queryset
- #return queryset.filter(site__domain='luxagraf.net').filter(post_type__in=[PostType.PHOTO_ESSAY]).filter(status__exact=1).order_by('-pub_date').prefetch_related('location').prefetch_related('featured_image')
+ return queryset.filter(site__domain='luxagraf.net').filter(post_type__in=[PostType.PHOTO_ESSAY]).filter(status__exact=1).order_by('-pub_date').prefetch_related('location').prefetch_related('featured_image')
def get_context_data(self, **kwargs):
'''
@@ -48,10 +46,10 @@ class PhotoEssayDetailView(LuxDetailView):
related.append(model.objects.get(slug=obj.slug, pub_date=obj.pub_date))
context['related'] = related
context['breadcrumbs'] = ('Photos',)
- context['crumb_url'] = reverse('posts:photo-essay-list')
+ context['crumb_url'] = reverse('photo_essay:list')
return context
def get_template_names(self):
obj = self.get_object()
- return ["film_detail.html"]
+ return ["photo_essay_detail.html"]
diff --git a/app/resume/admin.py b/app/resume/admin.py
deleted file mode 100644
index 8646cca..0000000
--- a/app/resume/admin.py
+++ /dev/null
@@ -1,59 +0,0 @@
-from django.contrib import admin
-
-from utils.widgets import LGEntryForm
-from .models import Publisher, PubItem, Job, Resume
-
-
-@admin.register(Job)
-class JobAdmin(admin.ModelAdmin):
- pass
-
-
-@admin.register(Resume)
-class ResumeAdmin(admin.ModelAdmin):
- fieldsets = (
- ('', {
- 'fields': (
- 'title',
- 'profile',
- 'skills',
- 'jobs',
- 'slug',
- ),
- 'classes': (
- 'show',
- 'extrapretty',
- 'wide'
- )
- }
- ),
- )
-
-
-@admin.register(Publisher)
-class PublisherAdmin(admin.ModelAdmin):
- pass
-
-
-@admin.register(PubItem)
-class PubItemAdmin(admin.ModelAdmin):
- form = LGEntryForm
- list_display = ('title', 'pub_date', 'publisher', 'admin_link')
- fieldsets = (
- ('', {
- 'fields': (
- 'title',
- 'body_markdown',
- 'slug',
- 'pub_date',
- 'url',
- 'publisher',
- ),
- 'classes': (
- 'show',
- 'extrapretty',
- 'wide'
- )
- }
- ),
- )
diff --git a/app/resume/build.py b/app/resume/build.py
deleted file mode 100644
index 4f051d5..0000000
--- a/app/resume/build.py
+++ /dev/null
@@ -1,75 +0,0 @@
-import os
-from django.urls import reverse
-from builder.base import BuildNew
-from pages.models import Page
-
-from .models import Publisher
-
-
-class BuildPubs(BuildNew):
-
- def build(self):
- self.build_detail_view()
- self.build_publisher_list()
- self.build_list_view(
- base_path=reverse("resume:list"),
- paginate_by=9999
- )
-
- def get_model_queryset(self):
- return self.model.objects.all()
-
- def build_detail_view(self):
- for obj in self.get_model_queryset():
- url = obj.get_absolute_url()
- print(url)
- path, slug = os.path.split(url)
- path = '%s/' % path
- # write html
- response = self.client.get(url)
- print(path, slug)
- self.write_file(path, response.content, filename=slug)
-
- def build_publisher_list(self):
- publishers = Publisher.objects.all()
- for publisher in publishers:
- self.build_list_view(
- base_path=reverse("resume:list_by_publisher", kwargs={'publisher': publisher.slug, }),
- paginate_by=9999
- )
-
-
-class BuildResume(BuildNew):
-
- def build(self):
- self.build_pages()
-
- def get_model_queryset(self):
- return self.model.objects.all()
-
- def build_pages(self):
- '''
- build out /work/index.html and work/resume.html
- '''
- pages = self.get_model_queryset().filter(app="resume", build=True)
- for obj in pages:
- path = "work/"
- if obj.slug == "profile":
- url = '/work/'
- slug = "index"
- else:
- url = "/%s%s/" % (path, obj.slug)
- slug = obj.slug
- # write html
- response = self.client.get(url, HTTP_HOST='127.0.0.1')
- self.write_file(path, response.content, filename=slug)
-
-
-def pub_builder():
- j = BuildPubs("resume", "pubitem")
- j.build()
-
-
-def resume_builder():
- j = BuildResume("pages", "page")
- j.build()
diff --git a/app/resume/migrations/0001_initial.py b/app/resume/migrations/0001_initial.py
deleted file mode 100644
index 14c9348..0000000
--- a/app/resume/migrations/0001_initial.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.9 on 2015-12-07 21:04
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- initial = True
-
- dependencies = [
- ]
-
- operations = [
- migrations.CreateModel(
- name='PubItem',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('title', models.CharField(max_length=200)),
- ('slug', models.CharField(max_length=50)),
- ('body_markdown', models.TextField(blank=True, null=True)),
- ('body_html', models.TextField(blank=True, null=True)),
- ('url', models.CharField(blank=True, max_length=200, null=True)),
- ('pub_date', models.DateTimeField(verbose_name='Date published')),
- ],
- options={
- 'ordering': ('-pub_date',),
- },
- ),
- migrations.CreateModel(
- name='Publisher',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=200)),
- ('slug', models.SlugField()),
- ('body_markdown', models.TextField(blank=True, null=True)),
- ('body_html', models.TextField(blank=True, null=True)),
- ('url', models.CharField(blank=True, max_length=200, null=True)),
- ('payment_time', models.DecimalField(decimal_places=0, max_digits=2)),
- ],
- ),
- migrations.AddField(
- model_name='pubitem',
- name='publisher',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='resume.Publisher'),
- ),
- ]
diff --git a/app/resume/migrations/0002_auto_20151207_2105.py b/app/resume/migrations/0002_auto_20151207_2105.py
deleted file mode 100644
index 7ac653f..0000000
--- a/app/resume/migrations/0002_auto_20151207_2105.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.9 on 2015-12-07 21:05
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterModelOptions(
- name='publisher',
- options={'ordering': ('-order',)},
- ),
- migrations.AddField(
- model_name='publisher',
- name='order',
- field=models.DecimalField(decimal_places=0, default=1, max_digits=1),
- preserve_default=False,
- ),
- ]
diff --git a/app/resume/migrations/0003_auto_20151211_1925.py b/app/resume/migrations/0003_auto_20151211_1925.py
deleted file mode 100644
index 77e3049..0000000
--- a/app/resume/migrations/0003_auto_20151211_1925.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.9 on 2015-12-11 19:25
-from __future__ import unicode_literals
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0002_auto_20151207_2105'),
- ]
-
- operations = [
- migrations.AlterModelOptions(
- name='publisher',
- options={'ordering': ('order',)},
- ),
- ]
diff --git a/app/resume/migrations/0004_job_resume.py b/app/resume/migrations/0004_job_resume.py
deleted file mode 100644
index e056fec..0000000
--- a/app/resume/migrations/0004_job_resume.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# Generated by Django 2.1.1 on 2019-01-12 12:45
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0003_auto_20151211_1925'),
- ]
-
- operations = [
- migrations.CreateModel(
- name='Job',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('title', models.CharField(max_length=200)),
- ('employer', models.CharField(max_length=200)),
- ('date_start', models.DateField(verbose_name='Date Start')),
- ('date_end', models.DateField(blank=True, null=True, verbose_name='Date End')),
- ('body_markdown', models.TextField(blank=True, null=True)),
- ],
- options={
- 'ordering': ('-date_end',),
- },
- ),
- migrations.CreateModel(
- name='Resume',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('title', models.CharField(max_length=200)),
- ('profile', models.TextField()),
- ('skills', models.TextField()),
- ('experience', models.ManyToManyField(to='resume.Job')),
- ],
- ),
- ]
diff --git a/app/resume/migrations/0005_job_slug.py b/app/resume/migrations/0005_job_slug.py
deleted file mode 100644
index d18baeb..0000000
--- a/app/resume/migrations/0005_job_slug.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 2.1.1 on 2019-01-12 12:56
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0004_job_resume'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='job',
- name='slug',
- field=models.CharField(blank=True, max_length=50),
- ),
- ]
diff --git a/app/resume/migrations/0006_auto_20190112_1257.py b/app/resume/migrations/0006_auto_20190112_1257.py
deleted file mode 100644
index 9ee8f1b..0000000
--- a/app/resume/migrations/0006_auto_20190112_1257.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Generated by Django 2.1.1 on 2019-01-12 12:57
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0005_job_slug'),
- ]
-
- operations = [
- migrations.RemoveField(
- model_name='job',
- name='slug',
- ),
- migrations.AddField(
- model_name='resume',
- name='slug',
- field=models.CharField(blank=True, max_length=50),
- ),
- ]
diff --git a/app/resume/migrations/0007_auto_20190113_1128.py b/app/resume/migrations/0007_auto_20190113_1128.py
deleted file mode 100644
index a635258..0000000
--- a/app/resume/migrations/0007_auto_20190113_1128.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 2.1.1 on 2019-01-13 11:28
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0006_auto_20190112_1257'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='job',
- name='employer',
- field=models.CharField(max_length=200, null=True),
- ),
- ]
diff --git a/app/resume/migrations/0008_auto_20190113_1139.py b/app/resume/migrations/0008_auto_20190113_1139.py
deleted file mode 100644
index 29d975d..0000000
--- a/app/resume/migrations/0008_auto_20190113_1139.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Generated by Django 2.1.1 on 2019-01-13 11:39
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0007_auto_20190113_1128'),
- ]
-
- operations = [
- migrations.RenameField(
- model_name='resume',
- old_name='experience',
- new_name='jobs',
- ),
- migrations.AlterField(
- model_name='job',
- name='employer',
- field=models.CharField(blank=True, default='', max_length=200),
- preserve_default=False,
- ),
- ]
diff --git a/app/resume/migrations/0009_job_body_html.py b/app/resume/migrations/0009_job_body_html.py
deleted file mode 100644
index fdeea15..0000000
--- a/app/resume/migrations/0009_job_body_html.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 2.1.1 on 2019-01-13 11:46
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0008_auto_20190113_1139'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='job',
- name='body_html',
- field=models.TextField(blank=True, null=True),
- ),
- ]
diff --git a/app/resume/migrations/0010_auto_20190113_1147.py b/app/resume/migrations/0010_auto_20190113_1147.py
deleted file mode 100644
index 879bd55..0000000
--- a/app/resume/migrations/0010_auto_20190113_1147.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# Generated by Django 2.1.1 on 2019-01-13 11:47
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0009_job_body_html'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='job',
- name='body_html',
- field=models.TextField(blank=True, default=''),
- preserve_default=False,
- ),
- migrations.AlterField(
- model_name='job',
- name='body_markdown',
- field=models.TextField(blank=True, default=''),
- preserve_default=False,
- ),
- ]
diff --git a/app/resume/migrations/0011_auto_20190114_0227.py b/app/resume/migrations/0011_auto_20190114_0227.py
deleted file mode 100644
index 7656c6e..0000000
--- a/app/resume/migrations/0011_auto_20190114_0227.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Generated by Django 2.1.1 on 2019-01-14 02:27
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('resume', '0010_auto_20190113_1147'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='resume',
- name='profile_html',
- field=models.TextField(blank=True),
- ),
- migrations.AddField(
- model_name='resume',
- name='skills_html',
- field=models.TextField(blank=True),
- ),
- ]
diff --git a/app/resume/migrations/__init__.py b/app/resume/migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/app/resume/migrations/__init__.py
+++ /dev/null
diff --git a/app/resume/models.py b/app/resume/models.py
deleted file mode 100644
index bac3115..0000000
--- a/app/resume/models.py
+++ /dev/null
@@ -1,98 +0,0 @@
-from django.db import models
-from django.utils.encoding import force_str
-from django.urls import reverse
-from django.template.defaultfilters import slugify
-
-from utils.util import markdown_to_html
-
-
-class Publisher(models.Model):
- name = models.CharField(max_length=200)
- slug = models.SlugField(max_length=50)
- body_markdown = models.TextField(null=True, blank=True)
- body_html = models.TextField(null=True, blank=True)
- url = models.CharField(max_length=200, blank=True, null=True)
- payment_time = models.DecimalField(max_digits=2, decimal_places=0)
- order = models.DecimalField(max_digits=1, decimal_places=0)
-
- class Meta:
- ordering = ('order',)
-
- def __str__(self):
- return self.name
-
- def save(self, *args, **kwargs):
- if self.body_markdown:
- self.body_html = markdown_to_html(self.body_markdown)
- super(Publisher, self).save()
-
-
-class PubItem(models.Model):
- title = models.CharField(max_length=200)
- slug = models.CharField(max_length=50)
- body_markdown = models.TextField(null=True, blank=True)
- body_html = models.TextField(null=True, blank=True)
- url = models.CharField(max_length=200, blank=True, null=True)
- pub_date = models.DateTimeField('Date published')
- publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)
-
- class Meta:
- ordering = ('-pub_date',)
-
- def __str__(self):
- return self.title
-
- def get_absolute_url(self):
- return reverse("resume:detail", kwargs={"publisher": self.publisher.slug, "slug": self.slug})
-
- def admin_link(self):
- return force_str('<a href="%s">Visit Site</a>' % (self.url))
- admin_link.allow_tags = True
- admin_link.short_description = 'Live Article'
-
- def save(self, *args, **kwargs):
- if self.body_markdown:
- self.body_html = markdown_to_html(self.body_markdown)
- super(PubItem, self).save()
-
-
-class Job(models.Model):
- title = models.CharField(max_length=200)
- employer = models.CharField(max_length=200, blank=True)
- date_start = models.DateField('Date Start')
- date_end = models.DateField('Date End', null=True, blank=True)
- body_markdown = models.TextField(blank=True)
- body_html = models.TextField(blank=True)
-
- class Meta:
- ordering = ('-date_end',)
-
- def __str__(self):
- return '{} - {}'.format(self.title, self.employer) # py3.1+ only
-
- def save(self, *args, **kwargs):
- if self.body_markdown:
- self.body_html = markdown_to_html(self.body_markdown)
- super(Job, self).save()
-
-
-class Resume(models.Model):
- title = models.CharField(max_length=200)
- slug = models.CharField(max_length=50, blank=True)
- profile = models.TextField()
- profile_html = models.TextField(blank=True)
- skills = models.TextField()
- skills_html = models.TextField(blank=True)
- jobs = models.ManyToManyField(Job)
-
- def __str__(self):
- return self.title
-
- def save(self, *args, **kwargs):
- if self._state.adding and not self.slug:
- self.slug = slugify(self.title)
- if self.skills:
- self.skills_html = markdown_to_html(self.skills)
- if self.profile:
- self.profile_html = markdown_to_html(self.profile)
- super(Resume, self).save()
diff --git a/app/resume/urls.py b/app/resume/urls.py
deleted file mode 100644
index de95866..0000000
--- a/app/resume/urls.py
+++ /dev/null
@@ -1,48 +0,0 @@
-from django.urls import path, re_path
-from django.views.generic.base import RedirectView
-
-from . import views
-
-app_name = "resume"
-
-urlpatterns = [
- path(
- r'pubs/<str:publisher>/<int:page>/',
- views.ByPublisherListView.as_view(),
- name='list_by_publisher',
- ),
- path(
- r'pubs/<str:publisher>/',
- views.ByPublisherListView.as_view(),
- {'page': 1},
- name='list_by_publisher',
- ),
- path(
- r'pubs/<str:page>/',
- views.PublisherListView.as_view(),
- name='list',
- ),
- path(
- r'pubs/',
- views.PublisherListView.as_view(),
- {'page': 1},
- name="list"
- ),
- path(
- r'pubs/<str:publisher>/<str:slug>',
- views.PubItemDetailView.as_view(),
- name='detail',
- ),
- path(
- r'<str:slug>/',
- views.PageView.as_view(),
- {'path': 'work'},
- name="pages"
- ),
- path(
- r'',
- views.PageView.as_view(),
- {'path': 'work', 'slug': 'profile'},
- name="pages"
- ),
-]
diff --git a/app/resume/views.py b/app/resume/views.py
deleted file mode 100644
index 3d0cd8d..0000000
--- a/app/resume/views.py
+++ /dev/null
@@ -1,60 +0,0 @@
-from django.views.generic.detail import DetailView
-from django.views.generic.base import TemplateView
-from django.shortcuts import get_object_or_404
-from utils.views import PaginatedListView
-
-from .models import PubItem, Publisher, Resume
-from pages.models import Page
-
-
-class PublisherListView(PaginatedListView):
- model = Publisher
- template_name = 'archives/resume-pubs.html'
-
- def get_queryset(self):
- return PubItem.objects.all()
-
- def get_context_data(self, **kwargs):
- # Call the base implementation first to get a context
- context = super(PublisherListView, self).get_context_data(**kwargs)
- context['pub_list'] = Publisher.objects.all()
- return context
-
-
-class ByPublisherListView(PaginatedListView):
- template_name = 'archives/resume-pubs-by-pub.html'
-
- def get_queryset(self):
- print(self.kwargs['publisher'])
- return PubItem.objects.filter(publisher__slug=self.kwargs['publisher'])
-
- def get_context_data(self, **kwargs):
- # Call the base implementation first to get a context
- context = super(ByPublisherListView, self).get_context_data(**kwargs)
- context['publisher'] = Publisher.objects.get(slug=self.kwargs['publisher'])
- return context
-
-
-class PubItemDetailView(DetailView):
- model = PubItem
- template_name = "details/pubs.html"
- slug_field = "slug"
-
-
-class PageView(DetailView):
- model = Page
- slug_field = "slug"
-
- def get_object(self, **kwargs):
- print("calling page view")
- return get_object_or_404(Page, path=self.kwargs['path'], slug=self.kwargs['slug'])
-
- def get_template_names(self):
- return ["details/%s.html" % self.object.slug, 'details/page.html']
-
- def get_context_data(self, **kwargs):
- # Call the base implementation first to get a context
- context = super(PageView, self).get_context_data(**kwargs)
- if self.kwargs['slug'] == 'resume':
- context['resume'] = Resume.objects.get(title='base')
- return context
diff --git a/app/trading/admin.py b/app/trading/admin.py
index 46982b0..5206c82 100644
--- a/app/trading/admin.py
+++ b/app/trading/admin.py
@@ -26,7 +26,7 @@ class LuxOptionsTradeAdmin(admin.ModelAdmin):
@admin.register(LuxTrade)
class LuxTradeAdmin(admin.ModelAdmin):
- list_display = ('symbol', 'status', 'open_date', 'entry_price', 'stop_price', 'close_price', 'shares', 'amount_invested')
+ list_display = ('symbol', 'status', 'open_date', 'close_date', 'entry_price', 'stop_price', 'close_price', 'shares', 'amount_invested')
list_filter = ['status', 'open_date']
class Media:
js = ('image-loader.js', 'next-prev-links.js')
diff --git a/app/utils/util.py b/app/utils/util.py
index 32a9838..5370d7a 100644
--- a/app/utils/util.py
+++ b/app/utils/util.py
@@ -78,43 +78,29 @@ def parse_image(s):
image_id = img['id'].split("image-")[1]
i = apps.get_model('media', 'LuxImage').objects.get(pk=image_id)
caption = False
- exif = False
cluster_class = None
is_cluster = False
- extra = None
if cl[0] == 'cluster':
- css_class = cl[0]
is_cluster = True
cluster_class = cl[1]
+ css_class = cl[0]
try:
if cl[2] == 'caption':
caption = True
- elif cl[2] == 'exif':
- exif = True
- else:
- extra = cl[2]
-
- if len(cl) > 3:
- if cl[3] == 'exif':
- exif = True
except:
pass
elif cl[0] != 'cluster' and len(cl) > 1:
css_class = cl[0]
if cl[1] == 'caption':
caption = True
- if cl[1] == 'exif':
- exif = True
elif cl[0] != 'cluster' and len(cl) > 2:
css_class = cl[0]
if cl[1] == 'caption':
caption = True
- if cl[2] == 'exif':
- exif = True
print('caption'+str(caption))
else:
css_class = cl[0]
- return render_to_string("lib/img_%s.html" % css_class, {'image': i, 'caption': caption, 'exif': exif, 'is_cluster': is_cluster, 'cluster_class': cluster_class, 'extra': extra})
+ return render_to_string("lib/img_%s.html" % css_class, {'image': i, 'caption': caption, 'is_cluster': is_cluster, 'cluster_class': cluster_class})
except KeyError:
''' regular inline image, not a luximage '''
return str(img)