예제 #1
0
class ListCommentForm(IdeiaForm):

    content_id = forms.IntegerField(min_value=1, required=True)
    content_type = forms.CharField(required=True)
    page = forms.IntegerField(min_value=1, required=False)

    def __init__(self, itens_per_page=10, *args, **kwargs):
        self.itens_per_page = itens_per_page
        super(ListCommentForm, self).__init__(*args, **kwargs)

    def clean(self):
        cleaned_data = super(ListCommentForm, self).clean()
        cleaned_data['page'] = cleaned_data['page']\
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def is_valid(self):
        valid = super(ListCommentForm, self).is_valid()

        if 'content_type' in self.cleaned_data and self.cleaned_data[
                'content_type'] not in settings.ENTITY_TO_COMMENT:
            self.add_error(
                None,
                ValidationError(
                    ('ContentType not found in comment contentType list.'),
                    code='comment_content_type_not_found'))

        return valid

    def __process__(self):
        return Business.get_comments_by_content_type_and_id(
            self.cleaned_data['content_type'], self.cleaned_data['content_id'],
            self.itens_per_page, self.cleaned_data['page'])
예제 #2
0
class CoreSearchQuestionsForm(IdeiaForm):

    criteria = forms.CharField(required=False)
    deleted = forms.NullBooleanField(required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, author=None, items_per_page=10, *args, **kwargs):
        self.items_per_page = items_per_page
        self.author = author

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

    def clean(self):
        cleaned_data = super(CoreSearchQuestionsForm, self).clean()

        cleaned_data['page'] = cleaned_data['page'] \
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return Business.get_questions(
            self.author,
            self.cleaned_data.get('criteria'),
            self.cleaned_data.get('deleted'),
            self.items_per_page,
            self.cleaned_data.get('page', 1)
        )
예제 #3
0
파일: community.py 프로젝트: tainaml/p_gs
class CoreCommunityFeedFormSearch(IdeiaForm):

    criterio = forms.CharField(required=False)
    page = forms.IntegerField(required=False)
    official = forms.BooleanField(required=False)

    def __init__(self, community_instance=None, content_types=None, itens_by_page=None, *args, **kwargs):
        self.community_instance=community_instance
        self.content_types = content_types
        self.itens_by_page = itens_by_page

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

    def clean(self):
        cleaned_data = super(CoreCommunityFeedFormSearch, self).clean()

        cleaned_data['page'] = cleaned_data['page']\
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        cleaned_data['official'] = cleaned_data.get('official', False)

        return cleaned_data

    def __process__(self):

        return Business.get_feed_objects(
            self.community_instance,
            self.cleaned_data['criterio'],
            self.content_types,
            self.itens_by_page,
            self.cleaned_data['page'],
            self.cleaned_data.get('official')
        )
예제 #4
0
class CoreUserSearchForm(IdeiaForm):

    criterio = forms.CharField(required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, profile_instance=None, content_types=None,
        itens_by_page=None, user=None, *args, **kwargs):

        self.profile_instance = profile_instance
        self.content_types = content_types
        self.itens_by_page = itens_by_page
        self.user = user

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

    def clean(self):
        cleaned_data = super(CoreUserSearchForm, self).clean()

        cleaned_data['page'] = cleaned_data['page']\
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return Business.get_feed_objects(
            self.profile_instance,
            self.cleaned_data['criterio'],
            self.content_types,
            self.itens_by_page,
            self.cleaned_data['page'],
            self.user
        )
예제 #5
0
파일: community.py 프로젝트: tainaml/p_gs
class CoreCommunitySearchMaterialsForm(IdeiaForm):

    criteria = forms.CharField(required=False)
    page = forms.IntegerField(required=False)
    tags = forms.ModelChoiceField(queryset=Business.get_avaiable_tags(), required=False,
                                  empty_label=_("All"))

    def __init__(self, community=None, items_per_page=10, *args, **kwargs):
        self.community = community
        self.items_per_page = items_per_page

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

    def get_avaiable_tags(self):
        return Business.get_avaiable_tags()

    def clean(self):
        cleaned_data = super(CoreCommunitySearchMaterialsForm, self).clean()

        cleaned_data['page'] = cleaned_data['page'] \
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return Business.get_articles_with_tags(
            self.community,
            self.cleaned_data.get('criteria'),
            self.items_per_page,
            self.cleaned_data.get('page', 1),
            self.cleaned_data.get('tags')
        )
예제 #6
0
파일: community.py 프로젝트: tainaml/p_gs
class CoreCommunityFollowersForm(IdeiaForm):

    community = forms.ModelChoiceField(queryset=Community.objects.all(), required=True)
    criteria = forms.CharField(required=False)
    state = forms.ModelChoiceField(queryset=State.objects.filter(country=1), required=False)
    city = forms.ModelChoiceField(queryset=City.objects.all(), required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, startswith=False, items_per_page=None, *args, **kwargs):
        self.startswith = startswith
        self.items_per_page = items_per_page

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

        if self.data and 'state' in self.data and self.data.get('state'):
            self.fields['city'].queryset = City.objects.filter(state=self.data['state'])

    def clean(self):
        cleaned_data = super(CoreCommunityFollowersForm, self).clean()
        cleaned_data['page'] = cleaned_data['page'] if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return Business.get_followers(
            self.cleaned_data,
            self.items_per_page,
            self.cleaned_data.get('page'),
            self.startswith
        )
예제 #7
0
class CoreSearchFavouriteForm(IdeiaForm):

    criteria = forms.CharField(required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, author, items_per_page, *args, **kwargs):

        self.author = author
        self.items_per_page = items_per_page

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

    def clean(self):
        cleaned_data = super(CoreSearchFavouriteForm, self).clean()

        cleaned_data['page'] = cleaned_data['page'] \
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return CoreBusinessSocialActions.get_favourite_content(
            self.author,
            self.cleaned_data.get('criteria'),
            self.items_per_page,
            self.cleaned_data.get('page', 1)
        )
예제 #8
0
파일: community.py 프로젝트: tainaml/p_gs
class CoreCommunityFormSearch(IdeiaForm):

    criteria = forms.CharField(required=False)
    page = forms.IntegerField(required=False)
    taxonomies = forms.ModelMultipleChoiceField(queryset=Taxonomy.objects.all(), required=False)

    def __init__(self, items_per_page=None, *args, **kwargs):

        self.items_per_page = items_per_page
        super(CoreCommunityFormSearch, self).__init__(*args, **kwargs)

    def clean(self):

        cleaned_data = super(CoreCommunityFormSearch, self).clean()
        cleaned_data['page'] = cleaned_data['page'] if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):

        return Business.get_communities(
            self.cleaned_data['taxonomies'],
            self.cleaned_data['criteria'],
            self.items_per_page,
            self.cleaned_data['page']
        )
예제 #9
0
파일: community.py 프로젝트: tainaml/p_gs
class CoreCommunitySearchVideosForm(IdeiaForm):

    criteria = forms.CharField(required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, community=None, items_per_page=10, *args, **kwargs):
        self.community = community
        self.items_per_page = items_per_page

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

    def clean(self):
        cleaned_data = super(CoreCommunitySearchVideosForm, self).clean()

        cleaned_data['page'] = cleaned_data['page'] \
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return Business.get_articles_with_videos(
            self.community,
            self.cleaned_data.get('criteria'),
            self.items_per_page,
            self.cleaned_data.get('page', 1)
        )
예제 #10
0
class CoreSearchCommunitiesForm(IdeiaForm):

    criteria = forms.CharField(required=False)
    __term = None
    try:
        __term = Term.objects.get(description__icontains='categoria')
    except:
        pass
    category = forms.ModelChoiceField(queryset=Taxonomy.objects.filter(term=__term), required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, author, items_per_page, *args, **kwargs):
        self.author = author
        self.items_per_page = items_per_page

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

    def clean(self):
        cleaned_data = super(CoreSearchCommunitiesForm, self).clean()

        cleaned_data['page'] = cleaned_data['page'] \
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return BusinessSocialActions.get_users_acted_by_author_with_parameters(
            author=self.author,
            action=settings.SOCIAL_FOLLOW,
            content_type='community',
            items_per_page=self.items_per_page,
            page=self.cleaned_data.get('page', 1),
            criteria=self.cleaned_data.get('criteria'),
            category=self.cleaned_data.get('category')
        )
예제 #11
0
class CoreSearchArticlesForm(IdeiaForm):

    criteria = forms.CharField(required=False)
    status = forms.ChoiceField(required=False, choices=Article.STATUS_CHOICES)
    page = forms.IntegerField(required=False)

    def __init__(self, author=None, items_per_page=10, order=None, *args, **kwargs):
        self.items_per_page = items_per_page
        self.author = author
        self.order = order

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

    def clean(self):
        cleaned_data = super(CoreSearchArticlesForm, self).clean()

        cleaned_data['page'] = cleaned_data['page'] \
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return Business.get_feed_articles(
            self.author,
            self.cleaned_data.get('criteria'),
            self.cleaned_data.get('status'),
            self.items_per_page,
            self.cleaned_data.get('page', 1),
        )
예제 #12
0
파일: geography.py 프로젝트: tainaml/p_gs
class GeographyListForm(IdeiaForm):

    name = forms.CharField(required=False)
    page = forms.IntegerField(min_value=1, required=False)

    def __init__(self, itens_per_page=10, model=None, *args, **kwargs):
        self.itens_per_page = itens_per_page
        self.model = model
        super(GeographyListForm, self).__init__(*args, **kwargs)

    def clean(self):
        cleaned_data = super(GeographyListForm, self).clean()
        cleaned_data['page'] = cleaned_data['page']\
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data


    def __process__(self):
        return  get_geography(
            self.model,
            self.cleaned_data['name'],
            self.itens_per_page,
            self.cleaned_data['page']
        )
예제 #13
0
파일: form.py 프로젝트: tainaml/p_gs
class ComplaintForm(IdeiaForm):
    description = forms.CharField(max_length=512, required=False)
    complaint_type = forms.ModelChoiceField(queryset=Business.get_type_complaint(), required=True)
    content_type = forms.CharField(max_length=20, required=True)
    object_id = forms.IntegerField(required=True)
    community_complaint = forms.ModelMultipleChoiceField(queryset=Community.objects.all(), required=False)

    def __init__(self, user=None, *args, **kwargs):
        super(ComplaintForm, self).__init__(*args, **kwargs)
        self.user = user

    def is_valid(self):

        valid = super(ComplaintForm, self).is_valid()

        try:
            entity_to_complaint = settings.ENTITY_TO_COMPLAINT
        except AttributeError:
            entity_to_complaint = False

        if not entity_to_complaint or self.cleaned_data['content_type'] not in entity_to_complaint:
            self.add_error(None,
                           ValidationError(('Content Type is not specified.'),
                                           code='content_is_not_specified'))
            valid = False

        return valid

    def __process__(self):
        return Business.create_complaint(parameters=self.cleaned_data, user=self.user)
예제 #14
0
class CreateCommentForm(IdeiaForm):
    content = forms.CharField(
        max_length=settings.COMMENT_TEXT_LIMIT if hasattr(
            settings, "COMMENT_TEXT_LIMIT") else 10000,
        required=True,
        widget=SummernoteWidget(editor_conf='comment', load_init=False))
    content_type = forms.CharField(max_length=20, required=True)
    content_object_id = forms.IntegerField(required=True)

    def __init__(self, user=None, *args, **kwargs):
        self.user = user
        super(CreateCommentForm, self).__init__(*args, **kwargs)

    def __process__(self):
        return Business.create_comment(self.user, self.cleaned_data)

    def clean(self):
        self.cleaned_data = super(CreateCommentForm, self).clean()
        if 'content' in self.cleaned_data:
            self.cleaned_data['content'] = self.cleaned_data['content'].strip()

        return self.cleaned_data

    def is_valid(self):

        valid = super(CreateCommentForm, self).is_valid()

        if not self.user or not self.user.is_authenticated:
            self.add_error(
                None,
                ValidationError(('User must be authenticated.'),
                                code='is_not_authenticated'))
            valid = False

        if 'content' in self.cleaned_data and self.cleaned_data[
                'content'] == '':
            self.add_error(
                'content',
                ValidationError(
                    ('Is not possible to comment only with white spaces.'),
                    code='white_spaces'))
            valid = False

        try:
            entity_to_comment = settings.ENTITY_TO_COMMENT
        except AttributeError:
            entity_to_comment = False

        if not entity_to_comment or self.cleaned_data[
                'content_type'] not in entity_to_comment:
            self.add_error(
                None,
                ValidationError(('Content Type is not specified.'),
                                code='content_is_not_specified'))
            valid = False

        return valid
예제 #15
0
class ListArticleCommunityForm(IdeiaForm):

    category_id = forms.IntegerField(min_value=1, required=True)
    page = forms.IntegerField(min_value=1, required=False)

    def __init__(self, itens_per_page=10, *args, **kwargs):
        self.itens_per_page = itens_per_page
        super(ListArticleCommunityForm, self).__init__(*args, **kwargs)

    def clean(self):
        cleaned_data = super(ListArticleCommunityForm, self).clean()
        cleaned_data['page'] = cleaned_data['page']\
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):

        return business.get_articles_communities_by_category(
            self.cleaned_data['category_id'], self.itens_per_page,
            self.cleaned_data['page'])
예제 #16
0
class SearchUserForm(SearchBaseForm):

    state = forms.IntegerField(required=False)
    city = forms.IntegerField(required=False)
    responsibility = forms.IntegerField(required=False)

    def __init__(self, items_per_page=None, startswith=False, *args, **kwargs):
        self.state = int(args[0]['state']) if "state" in args[0] and args[0]['state'] is not u'' else None
        self.city = int(args[0]['city']) if "city" in args[0] and args[0]['city'] is not u'' else None
        self.responsibility = int(args[0]['responsibility']) if "responsibility" in args[0] and args[0]['responsibility'] is not u'' else None
        self.items_per_page = items_per_page
        self.startswith = startswith
        super(SearchBaseForm, self).__init__(*args, **kwargs)

    def __process__(self):
        return Business.get_users(
            self.cleaned_data['q'],
            self.items_per_page,
            self.cleaned_data['page'],
            self.startswith,
            self.state,
            self.city,
            self.responsibility
        )
예제 #17
0
class ListAnswerForm(IdeiaForm):

    question_id = forms.IntegerField(min_value=1, required=True)
    page = forms.IntegerField(min_value=1, required=False)

    def __init__(self, question=None, itens_by_page=10, *args, **kwargs):
        self.question = question
        self.itens_by_page = itens_by_page
        super(ListAnswerForm, self).__init__(*args, **kwargs)

    def clean(self):
        cleaned_data = super(ListAnswerForm, self).clean()
        cleaned_data['page'] = cleaned_data['page']\
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):

        return Business.get_answers_by_question(
            question=self.question,
            items_per_page=self.itens_by_page,
            page=self.cleaned_data['page']
        )
예제 #18
0
class SearchBaseForm(IdeiaForm):

    category = forms.CharField(required=False)
    q = forms.CharField(required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, items_per_page=None, startswith=False, *args, **kwargs):
        self.items_per_page = items_per_page
        self.startswith = startswith
        super(SearchBaseForm, self).__init__(*args, **kwargs)

    def clean(self):
        cleaned_data = super(SearchBaseForm, self).clean()
        cleaned_data['page'] = cleaned_data['page'] if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data
예제 #19
0
class CoreSearchSocialActionsForm(IdeiaForm):
    criteria = forms.CharField(required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, action, items_per_page, *args, **kwargs):

        self.action = action
        self.items_per_page = items_per_page
        self.author = None
        self.target_user = None

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

    def clean(self):
        cleaned_data = super(CoreSearchSocialActionsForm, self).clean()

        cleaned_data['page'] = cleaned_data['page'] \
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def is_valid(self):

        is_valid = super(CoreSearchSocialActionsForm, self).is_valid()

        action_allowed = [settings.SOCIAL_SUGGEST, settings.SOCIAL_FAVOURITE, settings.SOCIAL_SEE_LATER]

        if self.action not in action_allowed:
            is_valid = False

        return is_valid

    def set_author(self, author):
        self.author = author

    def set_target_user(self, user):
        self.target_user = user

    def __process__(self):
        return CoreBusinessSocialActions.get_content_by_action(
            self.cleaned_data.get('criteria'),
            self.action,
            self.items_per_page,
            self.cleaned_data.get('page', 1),
            self.author,
            self.target_user
        )
예제 #20
0
파일: forms.py 프로젝트: tainaml/p_gs
class NotificationForm(IdeiaForm):
    page = forms.IntegerField(min_value=1, required=False)

    def __init__(self, *args, **kwargs):
        self.notification_actions = None
        self.items_per_page = None
        self.user = None
        self.visualized = None
        self.read = None

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

    def set_items_per_page(self, n):
        self.items_per_page = n if n else 10

    def set_to_user(self, user):
        self.user = user

    def set_notification_group(self, notification_group):
        self.notification_actions = notification_group

    def set_visualized(self, visualized):
        self.visualized = visualized

    def set_read(self, read):
        self.read = read

    def clean(self):
        cleaned_data = super(NotificationForm, self).clean()
        cleaned_data['page'] = cleaned_data[
            'page'] if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return Business.get_notifications(self.user, self.notification_actions,
                                          self.visualized, self.read,
                                          self.items_per_page,
                                          self.cleaned_data.get('page', 1))
예제 #21
0
class CoreSearchFollowings(IdeiaForm):

    criteria = forms.CharField(required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, author, items_per_page=None, *args, **kwargs):
        self.author = author
        self.items_per_page = items_per_page
        super(CoreSearchFollowings, self).__init__(*args, **kwargs)

    def clean(self):

        cleaned_data = super(CoreSearchFollowings, self).clean()
        cleaned_data['page'] = cleaned_data['page'] if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):
        return Business.get_followings(
            self.author,
            self.cleaned_data['criteria'],
            self.items_per_page,
            self.cleaned_data.get('page', 0)
        )
예제 #22
0
class CoreSearchFollowers(IdeiaForm):

    criteria = forms.CharField(required=False)
    page = forms.IntegerField(required=False)

    def __init__(self, author, items_per_page=None, *args, **kwargs):
        self.author = author
        self.items_per_page = items_per_page
        super(CoreSearchFollowers, self).__init__(*args, **kwargs)

    def clean(self):

        cleaned_data = super(CoreSearchFollowers, self).clean()
        cleaned_data['page'] = cleaned_data['page'] if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def __process__(self):

        return self.author.followers_list(
            Q(author__first_name__icontains=self.cleaned_data['criteria']) |
            Q(author__last_name__icontains=self.cleaned_data['criteria']),
            self.items_per_page, self.cleaned_data['page']
        )
예제 #23
0
class CourseListForm(IdeiaForm):

    CHOICES_TAXONOMY = Taxonomy.objects.filter(term__slug='categoria')

    CHOICES_ORDER_BY = (('', _('Default')), ('-updatein', _('Recent')),
                        ('updatein', _('Oldest')),
                        ('-rating', _('Better rating')), ('rating',
                                                          _('Worst rating')))

    title = forms.CharField(required=False, max_length=255)
    category = CategorylChoiceField(required=False,
                                    queryset=CHOICES_TAXONOMY,
                                    empty_label=_("Category"),
                                    to_field_name="slug")

    community = CommunityTaxonomylChoiceField(required=False,
                                              queryset=Taxonomy.objects.none(),
                                              to_field_name="slug",
                                              empty_label=_("Community"))
    order = forms.ChoiceField(required=False, choices=CHOICES_ORDER_BY)
    page = forms.IntegerField(min_value=1, required=False)

    @property
    def querystring(self):
        querystring_dict = {}
        for key in self.cleaned_data:
            querystring_dict[key] = unicode(self.cleaned_data[key]
                                            or '').encode('utf-8')

        taxonomy = self.cleaned_data.get("category", None)
        if taxonomy:
            querystring_dict['category'] = taxonomy.slug

        community = self.cleaned_data.get("community", None)
        if community:
            querystring_dict['community'] = community.slug

        return urlencode(querystring_dict)

    def __init__(self, itens_per_page=10, *args, **kwargs):
        self.itens_per_page = itens_per_page
        category = kwargs.get('data', {}).get('category', "")
        if category:
            self.declared_fields[
                'community'].queryset = Taxonomy.objects.filter(
                    parent__slug=category, community_related__isnull=False)
        super(CourseListForm, self).__init__(*args, **kwargs)

    def clean(self):
        cleaned_data = super(CourseListForm, self).clean()
        cleaned_data['page'] = cleaned_data['page']\
            if 'page' in cleaned_data and cleaned_data['page'] else 1

        return cleaned_data

    def is_valid(self):
        valid = super(CourseListForm, self).is_valid()

        return valid

    def __process__(self):

        return course_business.get_courses(self.itens_per_page,
                                           **self.cleaned_data)
예제 #24
0
파일: WizardForm.py 프로젝트: tainaml/p_gs
class WizardBase(IdeiaForm):
    step = forms.IntegerField(max_value=settings.WIZARD_STEPS_TOTAL)