Skip to content
This repository has been archived by the owner on Oct 5, 2021. It is now read-only.

Commit

Permalink
beginning of the update to django v2
Browse files Browse the repository at this point in the history
  • Loading branch information
FoxMaSk committed Oct 28, 2017
1 parent 926a3b9 commit 5ae6d3d
Show file tree
Hide file tree
Showing 49 changed files with 136 additions and 212 deletions.
2 changes: 1 addition & 1 deletion django_th/forms/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ class Meta:
widget=forms.Select(),
required=True
)
name = forms.ChoiceField(available_services())
name = forms.ChoiceField(choices=available_services())

# todo : set the value of status when editing the object
13 changes: 7 additions & 6 deletions django_th/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,28 +54,29 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
('token', models.CharField(max_length=255)),
('name', models.ForeignKey(to_field='name', to='django_th.ServicesActivated', related_name='+')),
('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)),
('name', models.ForeignKey(to_field='name', to='django_th.ServicesActivated', related_name='+',
on_delete=models.CASCADE)),
('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
],
),
migrations.AddField(
model_name='triggerservice',
name='consumer',
field=models.ForeignKey(blank=True, related_name='+', to='django_th.UserService'),
field=models.ForeignKey(blank=True, related_name='+', to='django_th.UserService', on_delete=models.CASCADE),
),
migrations.AddField(
model_name='triggerservice',
name='provider',
field=models.ForeignKey(blank=True, related_name='+', to='django_th.UserService'),
field=models.ForeignKey(blank=True, related_name='+', to='django_th.UserService', on_delete=models.CASCADE),
),
migrations.AddField(
model_name='triggerservice',
name='user',
field=models.ForeignKey(to=settings.AUTH_USER_MODEL),
field=models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE),
),
migrations.AddField(
model_name='rss',
name='trigger',
field=models.ForeignKey(to='django_th.TriggerService'),
field=models.ForeignKey(to='django_th.TriggerService', on_delete=models.CASCADE),
),
]
46 changes: 17 additions & 29 deletions django_th/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,14 @@ class UserService(models.Model):
(NONE, _('None'))
)

user = models.ForeignKey(User)
user = models.ForeignKey(User, on_delete=models.CASCADE)
token = models.CharField(max_length=255, blank=True)
name = models.ForeignKey(
ServicesActivated, to_field='name', related_name='+')
username = models.CharField(
_('username'), max_length=255, default='', blank=True)
password = models.CharField(
_('password'), max_length=128, default='', blank=True)
name = models.ForeignKey(ServicesActivated, to_field='name', related_name='+', on_delete=models.CASCADE)
username = models.CharField(_('username'), max_length=255, default='', blank=True)
password = models.CharField(_('password'), max_length=128, default='', blank=True)
host = models.CharField(_('host'), max_length=255, default='', blank=True)
client_id = models.CharField(
_('client id'), max_length=255, default='', blank=True)
client_secret = models.CharField(
_('client secret'), max_length=255, default='', blank=True)
client_id = models.CharField(_('client id'), max_length=255, default='', blank=True)
client_secret = models.CharField(_('client secret'), max_length=255, default='', blank=True)
duration = models.CharField(max_length=1, choices=DURATION, default=NONE)

counter_ok = models.IntegerField(default=0)
Expand All @@ -96,10 +91,10 @@ class TriggerService(models.Model):
"""
TriggerService
"""
provider = models.ForeignKey(UserService, related_name='+', blank=True)
consumer = models.ForeignKey(UserService, related_name='+', blank=True)
provider = models.ForeignKey(UserService, related_name='+', blank=True, on_delete=models.CASCADE)
consumer = models.ForeignKey(UserService, related_name='+', blank=True, on_delete=models.CASCADE)
description = models.CharField(max_length=200)
user = models.ForeignKey(User)
user = models.ForeignKey(User, on_delete=models.CASCADE)
date_created = models.DateField(auto_now_add=True)
date_triggered = models.DateTimeField(null=True)
status = models.BooleanField(default=False)
Expand Down Expand Up @@ -132,7 +127,7 @@ class Digest(models.Model):
"""
Digest service to store the data from other service
"""
user = models.ForeignKey(User)
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=600)
link = models.URLField()
duration = models.CharField(max_length=1)
Expand Down Expand Up @@ -165,14 +160,9 @@ def update_result(trigger_id, msg, status):
if status:
service = TriggerService.objects.get(id=trigger_id)

TriggerService.objects.filter(id=trigger_id).\
update(result=msg,
date_result=now(),
provider_failed=0,
consumer_failed=0,
counter_ok=service.counter_ok + 1)
UserService.objects.filter(user=service.user,
name=service.consumer.name).update(
TriggerService.objects.filter(id=trigger_id).update(result=msg, date_result=now(), provider_failed=0,
consumer_failed=0, counter_ok=service.counter_ok + 1)
UserService.objects.filter(user=service.user, name=service.consumer.name).update(
counter_ok=service.counter_ok + 1)
# otherwise, add 1 to the consumer_failed
else:
Expand All @@ -183,13 +173,11 @@ def update_result(trigger_id, msg, status):
).update(counter_ko=service.counter_ko + 1)

if failed > settings.DJANGO_TH.get('failed_tries', 5):
TriggerService.objects.filter(id=trigger_id).\
update(result=msg, date_result=now(), status=False,
counter_ko=service.counter_ko + 1)
TriggerService.objects.filter(id=trigger_id).update(result=msg, date_result=now(), status=False,
counter_ko=service.counter_ko + 1)
else:
TriggerService.objects.filter(id=trigger_id).\
update(result=msg, date_result=now(), consumer_failed=failed,
counter_ko=service.counter_ko + 1)
TriggerService.objects.filter(id=trigger_id).update(result=msg, date_result=now(), consumer_failed=failed,
counter_ko=service.counter_ko + 1)

warn_user_and_admin('consumer', service)

Expand Down
2 changes: 1 addition & 1 deletion django_th/services/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# django stuff
from django.conf import settings
from django.core.cache import caches
from django.core.urlresolvers import reverse
from django.urls import reverse

try:
from django.apps import apps
Expand Down
4 changes: 2 additions & 2 deletions django_th/settings.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Django settings for django_th project.
import os
from django.core.urlresolvers import reverse_lazy
from django.urls import reverse_lazy

DEBUG = True # set to False when using in production
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
Expand Down Expand Up @@ -114,7 +114,7 @@
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'formtools',
'django_js_reverse',
# 'django_js_reverse',
'rest_framework',
'django_th',
'th_rss',
Expand Down
4 changes: 2 additions & 2 deletions django_th/templates/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
<p class="text-{% if trigger.result == 'OK' %}info{% else %}warning{% endif %}">
<span class="glyphicon glyphicon-bullhorn"></span> {{ trigger.result }} - {{ trigger.date_result }}
<br>
<span class="badge">{{ trigger.counter_ok }}</span> {% trans "ran successfully" %} - <span class="badge">{{ trigger.counter_ko }}</span> {% trans "failed" %}
<span class="badge">{{ trigger.counter_ok }}</span> {% trans "ran successfully" %} - <span class="badge">{{ trigger.counter_ko }}</span> {% trans "failed" %}
</p>
</div>
</footer>
Expand Down Expand Up @@ -147,6 +147,6 @@
{% endif %}
{% endblock %}
{% block extrajs %}
<script src="{% url 'js_reverse' %}" type="text/javascript"></script>
<script src="{# url 'js_reverse' #}" type="text/javascript"></script>
<script src="{% static 'js/th.js' %}" type="text/javascript"></script>
{% endblock %}
2 changes: 1 addition & 1 deletion django_th/tests/test_views_userservices.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# coding: utf-8
from django.core.urlresolvers import reverse
from django.test import RequestFactory
from django.urls import reverse

from django_th.models import UserService
from django_th.tests.test_main import MainTest, setup_view
Expand Down
8 changes: 4 additions & 4 deletions django_th/tests/test_xcmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
class TestCmdMgt(TestCase):

def test_run(self):
management.call_command('recycle', verbosity=0, interactive=False)
management.call_command('read', verbosity=0, interactive=False)
management.call_command('publish', verbosity=0, interactive=False)
management.call_command('read_n_pub', trigger_id=1, verbosity=0, interactive=False)
management.call_command('recycle', verbosity=0)
management.call_command('read', verbosity=0)
management.call_command('publish', verbosity=0)
management.call_command('read_n_pub', trigger_id=1, verbosity=0)
# management.call_command('send_digest', verbosity=0, interactive=False)
161 changes: 49 additions & 112 deletions django_th/urls.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from django.conf.urls import include, url
from django.conf import settings
from django.urls import path
from django_th.forms.wizard import DummyForm, ProviderForm
from django_th.forms.wizard import ConsumerForm, ServicesDescriptionForm

Expand All @@ -19,18 +20,18 @@
from django_th.views_wizard import UserServiceWizard
from django_th.views_wizard import finalcallback

from django_js_reverse.views import urls_js
# from django_js_reverse.views import urls_js


from django.contrib import admin
admin.autodiscover()

urlpatterns = [
url(r'^jsreverse/$', urls_js, name='js_reverse'),
# url(r'^jsreverse/$', urls_js, name='js_reverse'),
# ****************************************
# admin module
# ****************************************
url(r'^admin/', include(admin.site.urls)),
# url(r'^th-admin/', include(('admin.site.urls', 'django.contrib.admin'), namespace="th-admin")),
# ****************************************
# auth module
# ****************************************
Expand All @@ -43,127 +44,63 @@
# ****************************************
# trigger happy module
# ****************************************
url(r'^th/$', TriggerListView.as_view(), name='base'),
url(r'^th/trigger/filter_by/(?P<trigger_filtered_by>[a-zA-Z]+)$',
TriggerListView.as_view(),
name='trigger_filter_by'),
url(r'^th/trigger/order_by/(?P<trigger_ordered_by>[a-zA-Z_]+)$',
TriggerListView.as_view(),
name='trigger_order_by'),
url(r'^th/trigger/$', TriggerListView.as_view(), name='home'),
path('th/', TriggerListView.as_view(), name='base'),
path('th/trigger/filter_by/<slug:trigger_ordered_by>', TriggerListView.as_view(), name='trigger_filter_by'),
path('th/trigger/order_by/<slug:trigger_ordered_by>', TriggerListView.as_view(), name='trigger_order_by'),
path('th/trigger/', TriggerListView.as_view(), name='home'),
# ****************************************
# * trigger
# ****************************************
url(r'^th/trigger/delete/(?P<pk>\d+)$',
TriggerDeleteView.as_view(),
name='delete_trigger'),
url(r'^th/trigger/edit/(?P<pk>\d+)$',
TriggerUpdateView.as_view(),
name='edit_trigger'),
url(r'^th/trigger/editprovider/(?P<trigger_id>\d+)$',
trigger_edit, {'edit_what': 'Provider'},
name='edit_provider'),
url(r'^th/trigger/editconsumer/(?P<trigger_id>\d+)$',
trigger_edit, {'edit_what': 'Consumer'},
name='edit_consumer'),
url(r'^th/trigger/edit/thanks',
TriggerEditedTemplateView.as_view(),
name="trigger_edit_thanks"),
url(r'^th/trigger/delete/thanks',
TriggerDeletedTemplateView.as_view(),
name="trigger_delete_thanks"),
url(r'^th/trigger/onoff/(?P<trigger_id>\d+)$',
trigger_on_off,
name="trigger_on_off"),
url(r'^th/trigger/all/(?P<switch>(on|off))$',
trigger_switch_all_to,
name="trigger_switch_all_to"),
path('th/trigger/delete/<int:pk>', TriggerDeleteView.as_view(), name='delete_trigger'),
path('th/trigger/edit/<int:pk>', TriggerUpdateView.as_view(), name='edit_trigger'),
path('th/trigger/editprovider/<int:trigger_id>', trigger_edit, {'edit_what': 'Provider'},
name='edit_provider'),
path('th/trigger/editconsumer/<int:trigger_id>', trigger_edit, {'edit_what': 'Consumer'},
name='edit_consumer'),
path('th/trigger/edit/thanks', TriggerEditedTemplateView.as_view(), name="trigger_edit_thanks"),
path('th/trigger/delete/thanks', TriggerDeletedTemplateView.as_view(), name="trigger_delete_thanks"),
path('th/trigger/onoff/(?P<trigger_id>\d+)$', trigger_on_off, name="trigger_on_off"),
path('th/trigger/all/(?P<switch>(on|off))$', trigger_switch_all_to, name="trigger_switch_all_to"),
# ****************************************
# * service
# ****************************************
url(r'^th/service/$', UserServiceListView.as_view(), name='user_services'),
url(r'^th/service/add/(?P<service_name>\w+)$',
UserServiceCreateView.as_view(),
name='add_service'),
url(r'^th/service/edit/(?P<pk>\d+)$',
UserServiceUpdateView.as_view(),
name='edit_service'),
url(r'^th/service/delete/(?P<pk>\d+)$',
UserServiceDeleteView.as_view(),
name='delete_service'),
url(r'^th/service/renew/(?P<pk>\d+)$',
renew_service,
name="renew_service"),
url(r'^th/service/delete/$',
UserServiceDeleteView.as_view(),
name='delete_service'),
url(r'^th/service/onoff/(?P<user_service_id>\d+)/(?P<switch>'
r'(on|off))$',
service_related_triggers_switch_to,
name="service_related_triggers_switch_to"),
path('th/service/', UserServiceListView.as_view(), name='user_services'),
path('th/service/add/<str:service_name>', UserServiceCreateView.as_view(), name='add_service'),
path('th/service/edit/<int:pk>', UserServiceUpdateView.as_view(), name='edit_service'),
path('th/service/delete/<int:pk>', UserServiceDeleteView.as_view(), name='delete_service'),
path('th/service/renew/<int:pk>', renew_service, name="renew_service"),
path('th/service/delete/', UserServiceDeleteView.as_view(), name='delete_service'),
url(r'^th/service/onoff/(?P<user_service_id>\d+)/(?P<switch>(on|off))$',
service_related_triggers_switch_to, name="service_related_triggers_switch_to"),
# ****************************************
# wizard
# ****************************************
url(r'^th/service/create/$',
UserServiceWizard.as_view([ProviderForm,
DummyForm,
ConsumerForm,
DummyForm,
ServicesDescriptionForm]),
name='create_service'),
path('th/service/create/',
UserServiceWizard.as_view([ProviderForm,
DummyForm,
ConsumerForm,
DummyForm,
ServicesDescriptionForm]),
name='create_service'),
# every service will use django_th.views.finalcallback
# and give the service_name value to use to
# trigger the real callback
url(r"^th/callbackevernote/$",
finalcallback,
{'service_name': 'ServiceEvernote', },
name="evernote_callback",),
url(r"^th/callbackgithub/$",
finalcallback,
{'service_name': 'ServiceGithub', },
name="github_callback",),
url(r"^th/callbackpocket/$",
finalcallback,
{'service_name': 'ServicePocket', },
name="pocket_callback",),
url(r"^th/callbackpushbullet/$",
finalcallback,
{'service_name': 'ServicePushbullet', },
name="pushbullet_callback",),
url(r"^th/callbackreddit/$",
finalcallback,
{'service_name': 'ServiceReddit', },
name="reddit_callback",),
url(r"^th/callbacktodoist/$",
finalcallback,
{'service_name': 'ServiceTodoist', },
name="todoist_callback",),
url(r"^th/callbacktrello/$",
finalcallback,
{'service_name': 'ServiceTrello', },
name="trello_callback",),
url(r"^th/callbacktumblr/$",
finalcallback,
{'service_name': 'ServiceTumblr', },
name="tumblr_callback",),
url(r"^th/callbacktwitter/$",
finalcallback,
{'service_name': 'ServiceTwitter', },
name="twitter_callback",),
url(r"^th/callbackwallabag/$",
finalcallback,
{'service_name': 'ServiceWallabag', },
name="wallabag_callback",),
url(r"^th/callbackmastodon/$",
finalcallback,
{'service_name': 'ServiceMastodon', },
name="mastodon_callback",),
url(r'^th/myfeeds/', include('th_rss.urls')),

url(r'^th/api/taiga/webhook/', include('th_taiga.urls')),
url(r'^th/api/slack/webhook/', include('th_slack.urls'))
path("th/callbackevernote/$", finalcallback, {'service_name': 'ServiceEvernote', }, name="evernote_callback",),
path("th/callbackgithub/$", finalcallback, {'service_name': 'ServiceGithub', }, name="github_callback",),
path("th/callbackpocket/$", finalcallback, {'service_name': 'ServicePocket', }, name="pocket_callback",),
path("th/callbackpushbullet/$", finalcallback, {'service_name': 'ServicePushbullet', },
name="pushbullet_callback",),
path("th/callbackreddit/$", finalcallback, {'service_name': 'ServiceReddit', }, name="reddit_callback",),
path("th/callbacktodoist/$", finalcallback, {'service_name': 'ServiceTodoist', }, name="todoist_callback",),
path("th/callbacktrello/$", finalcallback, {'service_name': 'ServiceTrello', }, name="trello_callback",),
path("th/callbacktumblr/$", finalcallback, {'service_name': 'ServiceTumblr', }, name="tumblr_callback",),
path("th/callbacktwitter/$", finalcallback, {'service_name': 'ServiceTwitter', }, name="twitter_callback",),
path("th/callbackwallabag/$", finalcallback, {'service_name': 'ServiceWallabag', }, name="wallabag_callback",),
path("th/callbackmastodon/$", finalcallback, {'service_name': 'ServiceMastodon', }, name="mastodon_callback",),
url(r'^th/myfeeds/', include(('th_rss.urls', 'th_rss'), namespace='th-rss')),
url(r'^th/api/taiga/webhook/', include(('th_taiga.urls', "th_taiga"), namespace='th-taiga')),
url(r'^th/api/slack/webhook/', include(('th_slack.urls', "th_slack"), namespace='th-slack'))
]

if settings.DJANGO_TH.get('fire'):
urlpatterns += url(r'^th/trigger/fire/(?P<trigger_id>\d+)$',
fire_trigger, name="fire_trigger"),
urlpatterns += url(r'^th/trigger/fire/(?P<trigger_id>\d+)$', fire_trigger, name="fire_trigger"),

0 comments on commit 5ae6d3d

Please sign in to comment.