Browse Source

refactoring

devel
Dmitry Novikov 7 years ago
parent
commit
6d39b1fef0
  1. 13
      abonapp/forms.py
  2. 6
      abonapp/models.py
  3. 21
      abonapp/templates/abonapp/modal_add_phone.html
  4. 18
      abonapp/templates/abonapp/modal_addstreet.html
  5. 2
      accounts_app/views.py
  6. 14
      msg_app/forms.py
  7. 8
      msg_app/locale/ru/LC_MESSAGES/django.po
  8. 10
      msg_app/models.py
  9. 24
      msg_app/templates/msg_app/chat.html
  10. 29
      msg_app/templates/msg_app/modal_new_conversation.html
  11. 5
      msg_app/views.py
  12. 3
      taskapp/forms.py
  13. 32
      taskapp/templates/taskapp/add_edit_task.html

13
abonapp/forms.py

@ -125,7 +125,7 @@ class PassportForm(forms.ModelForm):
),
'distributor': forms.TextInput(attrs={'required': ''}),
'date_of_acceptance': forms.DateInput(attrs={
'class': 'form-control', 'required': ''
'required': ''
}, format='%Y-%m-%d')
}
@ -136,10 +136,8 @@ class AbonStreetForm(forms.ModelForm):
fields = '__all__'
widgets = {
'name': forms.TextInput(attrs={
'class': 'form-control',
'required': '', 'autofocus': ''
}),
'group': forms.Select(attrs={'class': 'form-control'})
})
}
@ -154,11 +152,10 @@ class AdditionalTelephoneForm(forms.ModelForm):
settings, 'TELEPHONE_REGEXP',
r'^(\+[7,8,9,3]\d{10,11})?$'
),
'required': '',
'class': 'form-control'
'required': ''
}),
'owner_name': forms.TextInput(attrs={
'class': 'form-control', 'required': ''
'required': ''
})
}
@ -168,7 +165,7 @@ class PeriodicPayForIdForm(forms.ModelForm):
model = models.PeriodicPayForId
exclude = ('account',)
widgets = {
'next_pay': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'})
'next_pay': forms.DateInput(attrs={'type': 'date'})
}

6
abonapp/models.py

@ -68,8 +68,8 @@ class AbonTariff(models.Model):
class AbonStreet(models.Model):
name = models.CharField(max_length=64)
group = models.ForeignKey(Group, on_delete=models.CASCADE)
name = models.CharField(_('Street title'), max_length=64)
group = models.ForeignKey(Group, verbose_name=_('User group'), on_delete=models.CASCADE)
def __str__(self):
return self.name
@ -468,7 +468,7 @@ class AdditionalTelephone(models.Model):
getattr(settings, 'TELEPHONE_REGEXP', r'^(\+[7893]\d{10,11})?$')
),)
)
owner_name = models.CharField(max_length=127)
owner_name = models.CharField(_('Telephone owner'), max_length=127)
def __str__(self):
return "%s - (%s)" % (self.owner_name, self.telephone)

21
abonapp/templates/abonapp/modal_add_phone.html

@ -1,4 +1,4 @@
{% load i18n %}
{% load i18n bootstrap3 %}
<form role="form" action="{% url 'abonapp:telephone_new' gid uname %}" method="post"> {% csrf_token %}
<div class="modal-header primary">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
@ -6,21 +6,12 @@
</div>
<div class="modal-body">
<div class="form-group">
<label for="id_telephone">{% trans 'Telephone' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-earphone"></span></span>
{{ form.telephone }}{{ form.telephone.errors }}
</div>
</div>
<div class="form-group">
<label for="id_owner_name">{% trans 'Telephone owner' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
{{ form.owner_name }}{{ form.owner_name.errors }}
</div>
</div>
{% bootstrap_icon 'earphone' as ic %}
{% bootstrap_field form.telephone addon_before=ic %}
{% bootstrap_icon 'user' as ic %}
{% bootstrap_field form.owner_name addon_before=ic %}
<div class="btn-group">
<button type="submit" class="btn btn-success">

18
abonapp/templates/abonapp/modal_addstreet.html

@ -1,4 +1,4 @@
{% load i18n %}
{% load i18n bootstrap3 %}
<form role="form" action="{% url 'abonapp:street_add' gid %}" method="post"> {% csrf_token %}
<div class="modal-header primary">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
@ -8,22 +8,8 @@
{% include '_messages.html' %}
<div class="modal-body">
<div class="form-group-sm">
<label for="id_name">{% trans 'Street title' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-font"></span></span>
{{ form.name }}{{ form.name.errors }}
</div>
</div>
<div class="form-group-sm">
<label for="id_group">{% trans 'User group' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
{{ form.group }}{{ form.group.errors }}
</div>
</div>
{% bootstrap_form form %}
<div class="btn-group">
<button type="submit" class="btn btn-sm btn-success">

2
accounts_app/views.py

@ -10,7 +10,7 @@ from django.shortcuts import render, redirect, get_object_or_404, resolve_url
from django.contrib import messages
from django.urls import NoReverseMatch
from django.utils.decorators import method_decorator
from django.utils.translation import ugettext as _, gettext
from django.utils.translation import ugettext as _
from django.views.generic import ListView, UpdateView, DetailView
from django.conf import settings

14
msg_app/forms.py

@ -11,10 +11,13 @@ class ConversationForm(forms.ModelForm):
if user_profile_queryset is not None:
self.fields['participants'].choices = [(up.pk, up.get_full_name()) for up in user_profile_queryset]
title = forms.CharField(max_length=32, required=False,
widget=forms.TextInput(attrs={'class': 'form-control', 'maxlength': '32'}))
participants = forms.MultipleChoiceField(required=False,
widget=forms.SelectMultiple(attrs={'class': 'form-control'}))
title = forms.CharField(
max_length=32, required=False,
widget=forms.TextInput(attrs={'maxlength': '32'})
)
participants = forms.MultipleChoiceField(
required=False,
)
class Meta:
model = Conversation
@ -41,8 +44,7 @@ class MessageForm(forms.ModelForm):
model = Message
exclude = ('sent_at', 'author', 'conversation', 'account_status')
widgets = {
'text': forms.Textarea(attrs={'class': 'form-control'}),
'attachment': forms.FileInput(attrs={'class': 'form-control'})
'text': forms.Textarea(attrs={'required': ''})
}
def create(self, conversation, author):

8
msg_app/locale/ru/LC_MESSAGES/django.po

@ -45,7 +45,7 @@ msgstr "Статусы сообщений"
#: msg_app/models.py:35
msgid "Body"
msgstr "Тело"
msgstr "Текст сообщения"
#: msg_app/models.py:36
msgid "sent at"
@ -156,3 +156,9 @@ msgstr "Беседа создана"
#: msg_app/views.py:38 msg_app/views.py:57
msgid "fix form errors"
msgstr "заполните все поля в соответствии с их форматом"
msgid "Participants"
msgstr "Участники"
msgid "Title"
msgstr "Название"

10
msg_app/models.py

@ -1,3 +1,4 @@
from django.shortcuts import resolve_url
from kombu.exceptions import OperationalError
from django.db import models
@ -175,11 +176,13 @@ class ConversationManager(models.Manager):
class Conversation(models.Model):
title = models.CharField(max_length=32)
title = models.CharField(_('Title'), max_length=32)
participants = models.ManyToManyField(
UserProfile, related_name='conversations',
verbose_name=_('Participants'),
through='ConversationMembership',
through_fields=('conversation', 'account')
through_fields=('conversation', 'account'),
help_text=_('for select multiple press ctrl and click on field')
)
author = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
date_create = models.DateTimeField(auto_now_add=True)
@ -294,6 +297,9 @@ class Conversation(models.Model):
def make_messages_status_old(self, account):
return self._make_messages_status(account, 'old')
def get_absolute_url(self):
return resolve_url('msg_app:to_conversation', conv_id=self.pk)
class Meta:
db_table = 'conversations'
verbose_name = _("Conversation")

24
msg_app/templates/msg_app/chat.html

@ -1,5 +1,5 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %}
{% load i18n bootstrap3 %}
{% block breadcrumb %}
@ -51,7 +51,7 @@
<pre>{{ msg.text }}</pre>
{% if msg.attachment %}
<a href="{{ msg.attachment }}" class="btn btn-default btn-sm">
<a href="{{ msg.attachment.url }}" class="btn btn-default btn-sm" target="_blank">
<span class="glyphicon glyphicon-gift"></span> {{ msg.attachment }}
</a>
{% endif %}
@ -67,24 +67,12 @@
{% endfor %}
{% endwith %}
</div>
<form action="{% url 'msg_app:to_conversation' conv.pk %}" method="post"
enctype="multipart/form-data">{% csrf_token %}
<form action="{% url 'msg_app:to_conversation' conv.pk %}" method="post" enctype="multipart/form-data">{% csrf_token %}
<div class="panel-footer">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-comment"></span></span>
<textarea name="text" required class="form-control"></textarea>
</div>
</div>
<div class="btn-group">
<button class="btn btn-default" type="submit">
<span class="glyphicon glyphicon-send"></span> {% trans 'Send' %}
</button>
<!--<button class="btn btn-default" type="button">
<span class="glyphicon glyphicon-tag"></span> { % trans 'Attach' % }
</button>-->
</div>
{% bootstrap_form msg_form %}
{% bootstrap_button _('Send') button_type='submit' button_class='btn-default' icon='send' %}
<small>Если кто-то будет пользоваться то усовершенствую личные сообщения</small>
</div>

29
msg_app/templates/msg_app/modal_new_conversation.html

@ -1,4 +1,4 @@
{% load i18n %}
{% load i18n bootstrap3 %}
<form role="form" action="{% url 'msg_app:new_conversation' %}" method="post">{% csrf_token %}
<div class="modal-header primary">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
@ -6,28 +6,15 @@
</div>
<div class="modal-body">
<div class="form-group">
<label for="{{ form.title.id_for_label }}">{{ form.title.label }}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-header"></span></span>
{{ form.title }}{{ form.title.errors }}
</div>
</div>
<div class="form-group">
<label for="{{ form.participants.id_for_label }}">{{ form.participants.label }}</label>
<small>{% trans 'for select multiple press ctrl and click on field' %}</small>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
{{ form.participants }}{{ form.participants.errors }}
</div>
</div>
{% bootstrap_icon 'header' as ic %}
{% bootstrap_field form.title addon_before=ic %}
{% bootstrap_icon 'user' as ic %}
{% bootstrap_field form.participants addon_before=ic %}
{% bootstrap_button _('Add') button_type='submit' button_class='btn-primary' icon='plus' %}
<div class="btn-group">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-plus"></span> {% trans 'Add' %}
</button>
</div>
</div>
</form>

5
msg_app/views.py

@ -60,14 +60,17 @@ def to_conversation(request, conv_id):
frm = MessageForm(request.POST, request.FILES)
if frm.is_valid():
frm.create(conv, request.user)
return redirect(conv.get_absolute_url())
else:
messages.error(request, _('fix form errors'))
else:
conv.make_messages_status_old(request.user)
frm = MessageForm()
msg_list = conv.get_messages()
return render(request, 'msg_app/chat.html', {
'conv': conv,
'msg_list': msg_list
'msg_list': msg_list,
'msg_form': frm
})
except MessageError as e:
messages.error(request, e)

3
taskapp/forms.py

@ -38,8 +38,7 @@ class TaskFrm(forms.ModelForm):
'recipients': forms.SelectMultiple(attrs={
'size': 10
}),
'out_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
'abon': forms.Select(attrs={'class': 'form-control'})
'out_date': forms.DateInput(attrs={'type': 'date'})
}

32
taskapp/templates/taskapp/add_edit_task.html

@ -62,34 +62,24 @@
<ul class="dropdown-menu selectajax-ul"></ul>{{ form.abon.errors }}
</div>
</div>
<div class="form-group">
<label for="id_out_date">{% trans 'Reality' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
{{ form.out_date }}{{ form.out_date.errors }}
</div>
</div>
{% bootstrap_icon 'calendar' as ic %}
{% bootstrap_field form.out_date addon_before=ic %}
{% bootstrap_icon 'picture' as ic %}
{% bootstrap_field form.attachment addon_before=ic %}
<div class="btn-group btn-group-sm">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-save"></span> {% trans 'Save' %}
</button>
<button type="reset" class="btn btn-default">
<span class="glyphicon glyphicon-remove-circle"></span> {% trans 'Reset' %}
</button>
{% if task.id %}
<a href="{% url 'taskapp:delete' task.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span> {% trans 'Delete' %}
</a>
{% endif %}
{% bootstrap_button _('Save') button_type='submit' button_class='btn-primary' icon='save' %}
{% bootstrap_button _('Reset') button_type='reset' icon='remove-circle' %}
{% if task.id %}
<a href="{% url 'taskapp:finish' task.id %}" class="btn btn-success">
<span class="glyphicon glyphicon-ok"></span> {% trans 'Complete' %}
</a>
{% url 'taskapp:delete' task.id as delurl%}
{% bootstrap_button _('Delete') button_class='btn-danger' href=delurl icon='remove' %}
{% url 'taskapp:finish' task.id as cmpurl %}
{% bootstrap_button _('Complete') button_class='btn-success' href=cmpurl icon='ok' %}
{% endif %}
</div>
</form>

Loading…
Cancel
Save