Ejemplo n.º 1
0
class SimpleTickets(forms.Form):
    caption = forms.CharField(required=True, label=_('caption'))
    description = forms.CharField(widget=forms.Textarea(), required=False, label=_('description'))
    assigned = forms.ModelChoiceField(queryset=User.objects.all(), required=False, label=_('assigned'))
    priority = forms.ModelChoiceField(queryset=ticket_priority.objects.all(), required=False, initial=get_simple_priority, label=_('priority'), empty_label=None)
    deadline = forms.DateTimeField(widget=BootstrapDateTimeInput(format='dd.mm.yyyy hh:ii'), required=False, label=_('deadline'))
    component = forms.ModelChoiceField(queryset=ticket_component.objects.all(), required=False, label=_('component'))
Ejemplo n.º 2
0
    def __init__(self, *args, **kwargs):
        if not 'user' in kwargs:
            raise Exception('missing user')
        self.user = kwargs.pop('user')
        self.view_only = kwargs.pop('view_only', False)

        if not 'customer' in kwargs:
            raise Exception('missing customer')
        self.customer = kwargs.pop('customer')

        if 'exclude_list' in kwargs:
            exclude_list = kwargs.pop('exclude_list')
        else:
            exclude_list = []

        if not 'is_stuff' in kwargs or not kwargs.pop('is_stuff'):
            exclude_list = list(set(exclude_list + settings.TICKET_NON_PUBLIC_FIELDS))

            super(TicketsForm, self).__init__(*args, **kwargs)

            if self.fields.get('customer'):
                self.fields['customer'].queryset = self.fields['customer'].queryset.filter(pk=self.customer)
        else:
            super(TicketsForm, self).__init__(*args, **kwargs)

        for field in exclude_list:
            del self.fields[field]

        for field in self.fields:
            if type(self.fields[field]) is forms.fields.DateField:
                self.fields[field].widget = BootstrapDateInput()

            if type(self.fields[field]) is forms.fields.DateTimeField:
                self.fields[field].widget = BootstrapDateTimeInput()

        # remove fields after close
        if not self.instance.pk is None and self.instance.closed and not self.view_only:
            available_fields = []
            for field in self.fields:
                available_fields.append(str(field))

            for field in available_fields:
                if str(field) not in settings.TICKET_EDITABLE_FIELDS_AFTER_CLOSE:
                    del self.fields[str(field)]

        # disallow non state
        if 'state' in self.fields:
            self.fields['state'].empty_label = None

            # only allow possible states
            if not self.instance.pk is None and not self.view_only:
                flows = list(ticket_flow_edges.objects.select_related('next').filter(now=self.instance.state).exclude(next__type=2).values_list('next', flat=True))
                flows.append(self.instance.state_id)
                self.fields['state'].queryset = self.fields['state'].queryset.filter(id__in=flows)
Ejemplo n.º 3
0
    def __init__(self, *args, **kwargs):
        if 'user' not in kwargs:
            raise Exception('missing user')
        self.user = kwargs.pop('user')

        if 'customer' not in kwargs:
            raise Exception('missing customer')
        self.customer = kwargs.pop('customer')

        if 'include_list' in kwargs:
            include_list = kwargs.pop('include_list')
        else:
            include_list = []

        if 'is_stuff' not in kwargs or not kwargs.pop('is_stuff'):
            used_fields = []
            for ele in include_list:
                if ele not in settings.TICKET_NON_PUBLIC_FIELDS:
                    used_fields.append(ele)
            super(SearchForm, self).__init__(*args, **kwargs)

            if self.fields.get('customer'):
                self.fields['customer'].queryset = self.fields[
                    'customer'].queryset.filter(pk=self.customer)
        else:
            used_fields = include_list
            super(SearchForm, self).__init__(*args, **kwargs)
        available_fields = []
        for field in self.fields:
            available_fields.append(str(field))

        for field in available_fields:
            if str(field) not in used_fields:
                del self.fields[str(field)]

        for field in self.fields:
            if type(self.fields[field]) is forms.fields.DateField:
                self.fields[field].widget = BootstrapDateInput()

            if type(self.fields[field]) is forms.fields.DateTimeField:
                self.fields[field].widget = BootstrapDateTimeInput()

            if type(self.fields[field]) is forms.fields.BooleanField:
                self.fields[field] = forms.NullBooleanField()

            self.fields[field].required = False
        """
        # add fulltext
        field = forms.CharField(required=False, label=_('full text search'))
        setattr(self, 'fulltext', field)
        self.fields['fulltext'] = field

        self.field_order = ['fulltext']
        for field in self.fields:
            self.field_order.append(field)
        self.field_order.pop()
        """

        # unset initial
        for field in self.fields:
            self.fields[field].initial = None