Exemple #1
0
    def render_views(self, model, timestamp_fieldname=None):
        views_class_templates = \
            get_templates_in_dir('generate_scaffold', 'views', 'views')

        class_name = model._meta.concrete_model.__name__
        model_slug = slugify(class_name)

        timestamp_field = self.get_timestamp_field(model, timestamp_fieldname)
        is_timestamped = True if timestamp_field else False

        views_context = {
            'app_name': self.app_name,
            'model_slug': model_slug,
            'class_name': class_name,
            'is_timestamped': is_timestamped,
        }
        if is_timestamped:
            views_context['timestamp_field'] = timestamp_field.name

        rendered_views_classes = []
        for view_class_template in views_class_templates:
            t = get_template(view_class_template)
            rendered_views_classes.append(t.render(Context(views_context)))

        views_template = get_template('generate_scaffold/views/views.txt')
        views_context['views'] = rendered_views_classes
        return views_template.render(Context(views_context))
    def render_views(self, model, timestamp_fieldname=None):
        views_class_templates = \
            get_templates_in_dir('generate_scaffold', 'views', 'views')

        class_name = model._meta.concrete_model.__name__
        model_slug = slugify(class_name)

        timestamp_field = self.get_timestamp_field(
            model, timestamp_fieldname)
        is_timestamped = True if timestamp_field else False

        views_context = {
            'app_name': self.app_name,
            'model_slug': model_slug,
            'class_name': class_name,
            'is_timestamped': is_timestamped,
        }
        if is_timestamped:
            views_context['timestamp_field'] = timestamp_field.name

        rendered_views_classes = []
        for view_class_template in views_class_templates:
            t = get_template(view_class_template)
            rendered_views_classes.append(t.render(Context(views_context)))

        views_template = get_template('generate_scaffold/views/views.txt')
        views_context['views'] = rendered_views_classes
        return views_template.render(Context(views_context))
Exemple #3
0
    def render_views(self, model, timestamp_fieldname=None):
        views_class_templates = get_templates_in_dir("generate_scaffold/views/views")

        class_name = model._meta.concrete_model.__name__
        model_slug = slugify(class_name)

        timestamp_field = self.get_timestamp_field(model, timestamp_fieldname)
        is_timestamped = True if timestamp_field else False

        views_context = {
            "app_name": self.app_name,
            "model_slug": model_slug,
            "class_name": class_name,
            "is_timestamped": is_timestamped,
        }
        if is_timestamped:
            views_context["timestamp_field"] = timestamp_field.name

        rendered_views_classes = []
        for view_class_template in views_class_templates:
            t = get_template(view_class_template)
            rendered_views_classes.append(t.render(Context(views_context)))

        views_template = get_template("generate_scaffold/views/views.txt")
        views_context["views"] = rendered_views_classes
        return views_template.render(Context(views_context))
    def render_urls(self, model, timestamp_fieldname=None):
        urls_module = self.get_app_module("urls")
        is_urlpatterns_available = hasattr(urls_module, "urlpatterns")

        url_pattern_templates = get_templates_in_dir("generate_scaffold/urls/urls")

        class_name = model._meta.concrete_model.__name__
        model_slug = slugify(class_name)

        if self.get_timestamp_field(model, timestamp_fieldname):
            is_timestamped = True
        else:
            is_timestamped = False

        rendered_url_patterns = []
        for url_pattern_template in url_pattern_templates:
            t = get_template(url_pattern_template)
            c = {
                "app_name": self.app_name,
                "model_slug": model_slug,
                "class_name": class_name,
                "is_timestamped": is_timestamped,
            }
            rendered_url_patterns.append(t.render(Context(c)))

        url_patterns_operator = "+=" if is_urlpatterns_available else "="
        urls_template = get_template("generate_scaffold/urls/urls.txt")
        c = {
            "app_name": self.app_name,
            "model_slug": model_slug,
            "url_patterns_operator": url_patterns_operator,
            "urls": rendered_url_patterns,
        }
        return urls_template.render(Context(c))
    def render_templates(self,
                         model,
                         model_templates_dirpath,
                         timestamp_fieldname=None):

        template_templates = \
            get_templates_in_dir('generate_scaffold', 'tpls')

        class_name = model._meta.concrete_model.__name__
        model_slug = slugify(class_name)
        model_fields = self.get_model_fields(model)

        timestamp_field = self.get_timestamp_field(model, timestamp_fieldname)
        is_timestamped = True if timestamp_field else False

        context_keys = {
            'year': 'year.year' if DJANGO_VERSION >= (1, 5) else 'year'
        }

        for template_template in template_templates:

            if not is_timestamped and '_archive' in template_template:
                # Do not render templates for date-based views.
                continue

            filename = os.path.basename(template_template)
            dst_filename = filename.replace('MODEL_NAME', model_slug)
            dst_abspath = os.path.join(model_templates_dirpath, dst_filename)
            t = get_template(template_template)
            c = {
                'app_name': self.app_name,
                'model_slug': model_slug,
                'model_fields': model_fields,
                'class_name': class_name,
                'filename': dst_abspath,
                'is_timestamped': is_timestamped,
                'context_keys': context_keys
            }
            if is_timestamped:
                c['timestamp_field'] = timestamp_field.name

            rendered_template = t.render(Context(c))
            yield dst_abspath, rendered_template
    def render_templates(
            self, model, model_templates_dirpath, timestamp_fieldname=None):

        template_templates = \
            get_templates_in_dir('generate_scaffold', 'tpls')

        class_name = model._meta.concrete_model.__name__
        model_slug = slugify(class_name)
        model_fields = self.get_model_fields(model)

        timestamp_field = self.get_timestamp_field(
            model, timestamp_fieldname)
        is_timestamped = True if timestamp_field else False

        context_keys = {
            'year': 'year.year' if DJANGO_VERSION >= (1, 5) else 'year'
        }

        for template_template in template_templates:

            if not is_timestamped and '_archive' in template_template:
                # Do not render templates for date-based views.
                continue

            filename = os.path.basename(template_template)
            dst_filename = filename.replace('MODEL_NAME', model_slug)
            dst_abspath = os.path.join(model_templates_dirpath, dst_filename)
            t = get_template(template_template)
            c = {
                'app_name': self.app_name,
                'model_slug': model_slug,
                'model_fields': model_fields,
                'class_name': class_name,
                'filename': dst_abspath,
                'is_timestamped': is_timestamped,
                'context_keys': context_keys
            }
            if is_timestamped:
                c['timestamp_field'] = timestamp_field.name

            rendered_template = t.render(Context(c))
            yield dst_abspath, rendered_template
    def render_urls(self, model, timestamp_fieldname=None):
        urls_module = self.get_app_module('urls')
        is_urlpatterns_available = \
            hasattr(urls_module, 'urlpatterns')

        url_pattern_templates = \
            get_templates_in_dir('generate_scaffold/urls/urls')

        class_name = model._meta.concrete_model.__name__
        model_slug = slugify(class_name)

        if self.get_timestamp_field(model, timestamp_fieldname):
            is_timestamped = True
        else:
            is_timestamped = False

        rendered_url_patterns = []
        for url_pattern_template in url_pattern_templates:
            t = get_template(url_pattern_template)
            c = {
                'app_name': self.app_name,
                'model_slug': model_slug,
                'class_name': class_name,
                'is_timestamped': is_timestamped,
            }
            rendered_url_patterns.append(t.render(Context(c)))

        url_patterns_operator = '+=' if is_urlpatterns_available else '='
        urls_template = get_template('generate_scaffold/urls/urls.txt')
        c = {
            'app_name': self.app_name,
            'model_slug': model_slug,
            'url_patterns_operator': url_patterns_operator,
            'urls': rendered_url_patterns,
        }
        return urls_template.render(Context(c))
Exemple #8
0
    def render_urls(self, model, timestamp_fieldname=None):
        urls_module = self.get_app_module('urls')
        is_urlpatterns_available = \
            hasattr(urls_module, 'urlpatterns')

        url_pattern_templates = \
            get_templates_in_dir('generate_scaffold/urls/urls')

        class_name = model._meta.concrete_model.__name__
        model_slug = slugify(class_name)

        if self.get_timestamp_field(model, timestamp_fieldname):
            is_timestamped = True
        else:
            is_timestamped = False

        rendered_url_patterns = []
        for url_pattern_template in url_pattern_templates:
            t = get_template(url_pattern_template)
            c = {
                'app_name': self.app_name,
                'model_slug': model_slug,
                'class_name': class_name,
                'is_timestamped': is_timestamped,
            }
            rendered_url_patterns.append(t.render(Context(c)))

        url_patterns_operator = '+=' if is_urlpatterns_available else '='
        urls_template = get_template('generate_scaffold/urls/urls.txt')
        c = {
            'app_name': self.app_name,
            'model_slug': model_slug,
            'url_patterns_operator': url_patterns_operator,
            'urls': rendered_url_patterns,
        }
        return urls_template.render(Context(c))